2012-04-16 130 views
9

我想在虚拟主机配置中添加mod_rewrite规则,但它不工作。 对于“mysite.com”网站,我想将“/ webmedia /”重定向到主页。虚拟主机配置中的mod_rewrite

以下是我有:

<VirtualHost 192.168.100.142:80> 
    ServerAdmin [email protected] 
    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 
    <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> 
    <Directory /home/movies> 
     Options FollowSymLinks Includes ExecCGI 
       AllowOverride All 
       DirectoryIndex index.html index.htm index.php 
    </Directory> 

</VirtualHost> 
+0

为什么不将规则移动到'.htaccess'文件?这将更容易管理,因为您不必在每次修改后重新启动Apache。 – 2012-04-16 14:01:20

+2

.htaccess文件越来越大,我听说服务器从vhosts文件中读取它会更有效率。那是对的吗? – EricP 2012-04-16 14:03:10

+2

是的,Apache可能_faster_没有'AllowOverride All',因为它不会在每个请求中读取您的.htaccess文件。我猜这里的表现收益很小。你现在在'.htaccess'中有什么大的? – 2012-04-16 14:06:23

回答

11

,如果您有mod_rewrite的加载这应该工作。

<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 [email protected] 
    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> 
+0

谢谢Seybsen。就是这样。 – EricP 2012-04-16 19:43:16

+0

如果在.htaccess文件中有更少的重写并且在vhost配置中有更多的重写,我在服务器上更容易吗?或者没有关系? – EricP 2012-04-17 14:32:44

+1

看看这个答案:http://stackoverflow.com/a/9555416/982002 – Seybsen 2012-04-17 15:01:03