0

我有一堆工作正常的 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,结果相同。

编辑2:

只需设置一个 VirtualHost 就会导致 RewriteRules 停止工作。一个空就够了。

4

1 回答 1

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>

我希望这对你有帮助

问候

于 2013-05-21T18:37:43.047 回答