0

我正在使用以下代码

RewriteEngine on
RewriteRule  ^/(certain|folders|on|server) - [NC,L]
RewriteRule (.*) http://newserver/blog$1 [L,NS]

我希望它会忽略我的文件夹列表,并重定向到其他所有内容。相反,它似乎总是重定向到“newserver”。在第一个语句中将“-”更改为 URL 确实有效,但我实际上并不希望将这些文件夹定向到任何地方。

为什么我的陈述没有按预期工作?

另外,我注意到对于所有未列出的文件夹,我都有“newserver/”,而我列出的只是“newserver”(没有 uri)

4

2 回答 2

0

事实证明我的规则确实按预期工作。我以前尝试在 apache.conf 中使用这些规则。将其移至网站“VirtualDirectory”标签似乎可以解决问题

于 2012-08-31T18:58:42.527 回答
0

您需要删除规则中的前导斜杠。htaccess 文件中的重写规则被赋予一个 URI,以匹配去掉前导斜线。?通过在斜杠后添加 a 来更改您的第一条规则:

RewriteRule  ^/?(certain|folders|on|server) - [NC,L]

或者您可以将其更改为条件:

RewriteCond %{REQUEST_URI} !^/(certain|folders|on|server)

这将应用于遵循它的规则。

于 2012-08-30T20:52:40.997 回答