RewriteCond和规则,除了一些页面

时间:2018-04-20 06:21:05

标签: apache

您好我想在apache2上使用重定向模块

如果请求“test.net/xxx”然后重定向到“test.test..net / xxx”

但除了index.html页面

例如,如果请求“test.net/index.html”然后没有重定向

我写了apache2 conf文件,如下所示。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^test\.net [NC]
RewriteRule ^http://test\.net/([^index\.html]) http://test.test.net/$1 [R=301,L]

但不起作用

如何编辑上述句子?请告诉我

谢谢!

1 个答案:

答案 0 :(得分:0)

添加一个条件,注意只有在符合的情况下才应用该规则并修复实际的重写规则:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^test\.net$ [NC]
RewriteCond %{REQUEST_URI} !^/index\.html$
RewriteRule ^/?(.*)$ http://test.test.net/$1 [R=301]

该规则适用于http服务器主机配置,但也适用于动态配置文件(" .htaccess")。

如果您收到带有上述规则的http状态500("内部服务器错误"),那么您可能会运行非常旧版本的apachE http服务器。然后,错误日志文件将指出未知标志[END]。在这种情况下,将其替换为旧[L]标志。