I\'m trying to add mod_rewrite rules in the vhost config but it\'s not working. For the site \"mysite.com\" I want to redirect \"/webmedia/\" to the home page .
Here
<Directory /home/drupal_1> Options FollowSymLinks Includes ExecCGI AllowOverride All DirectoryIndex index.html index.htm index.php # Rewrite Rules ##################### RewriteEngine On RewriteRule ^/webmedia/(.*) / [R=301,L] # end Rewrite Rules ################# </Directory>
This RewriteRule pattern would never match in a directory context (ie. inside a <Directory> container) because of the slash prefix. It would have needed to have been written like this:
RewriteRule ^webmedia/ / [R=301,L]
(The trailing (.*) was superfluous.)
However, since it's in a <Directory> container, any mod_rewrite directives that you have in .htaccess (since you have AllowOverride All) could potentially override this.
If you are using .htaccess and this is undesirable then probably better to take it out of the <Directory> container and have it directly in the <VirtualHost> container (a virtualhost context) - as @Seybsen has done in his answer.
This should work if you have mod_rewrite loaded.
<Directory /home/drupal_1>
Options FollowSymLinks Includes ExecCGI
AllowOverride All
DirectoryIndex index.html index.htm index.php
</Directory>
<Directory /home/movies>
Options FollowSymLinks Includes ExecCGI
AllowOverride All
DirectoryIndex index.html index.htm index.php
</Directory>
<VirtualHost 192.168.100.142:80>
ServerAdmin serveradmin@bbgi.com
DocumentRoot /home/drupal_1
ServerName mysite.com
ServerAlias www.mysite.com
Alias /movies /home/movies/
ErrorLog /var/log/httpd/mysite.com_err_log
CustomLog /var/log/httpd/mysite.com_log special
# Rewrite Rules #####################
RewriteEngine On
RewriteRule ^/webmedia/(.*) / [R=301,L]
# end Rewrite Rules #################
</VirtualHost>