Apache - 添加虚拟目录后无法再使用mod_rewrite

时间:2011-10-26 18:31:10

标签: apache .htaccess mod-rewrite httpd.conf

我的apache服务器设置了非常基本的配置。我过去只为apache提供一个网站,我们称之为example.com。在httpd.conf文件中,我有一些代码强制网站始终在网址中显示www。

我最近为该网站添加了一个子域名blog.example.com。为此,我需要在httpd.conf文件中创建2个虚拟目录指令。

NameVirtualHost *:80
<VirtualHost *:80>
 ServerName example.com
 DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
 ServerName blog.example.com
 DocumentRoot /var/www/blog
</VirtualHost>

在此之后,我立即保留了重写代码:

RewriteEngine On
RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://www.example.com/$1 [L,R]

问题是,在添加虚拟目录代码后,重写代码不再有效。我尝试创建以下Directory指令,它似乎根本不起作用。

<Directory "/var/www/html">
 Options Indexes MultiViews FollowSymLinks
 Order Deny,Allow
 Allow from all
 AllowOverride All
</Directory>

此外,我尝试在网站的html文件夹中创建一个.htaccess文件并重新启动apache,但我放入的任何内容都没有被注意到。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

来自原始海报的评论回答:

  

好的,我明白了。我只需要在开始和结束指令中移动重写逻辑。感谢@animuson的帮助。 - Henry Wrinkler