添加VirtualHost时,RewriteRules停止工作

时间:2013-05-21 17:12:59

标签: apache mod-rewrite configuration virtualhost

我有一堆RewriteRules工作正常,并且必须存在于服务器回复的每个主机名。一个例子:

RewriteRule ^/file\.js /var/pear/Package/file\.js [QSA,L]

现在,我想强制规范名称为目录末端的丢失斜线重定向。所以我补充道:

<VirtualHost *:80>
  ServerName custom.name.com
</VirtualHost>

如果我转到http://custom.name.com/some_dir,则会重定向到http://custom.name.com/some_dir/

现在,如果我转到http://custom.name.com/file.jshttp://original.host.name/file.js,我会收到404而不是Pear中的文件。如果我删除VirtualHost 3行,一切都会恢复正常工作。

任何想法为什么?

编辑1:

尝试使用ServerAlias而不是ServerName,结果相同。

EDIT2:

设置VirtualHost会导致RewriteRules停止工作。空洞已经足够了。

1 个答案:

答案 0 :(得分:1)

您的规则似乎仅适用于默认网站。

试试这个

<VirtualHost *:80>
  ServerName custom.name.com
  DocumentRoot path/goes/here
  <Directory "path/goes/here">
     ...
     RewriteRule ^/file\.js /home/y/share/pear/Pacakge/file\.js [QSA,L]
     ...
  </Directory>
</VirtualHost>

我希望这可以帮到你

此致