0

如果用户键入

www.example.com/Front

或者

www.example.com/Front.php

我想重定向到

www.example.com

这是我的htaccess:

RewriteEngine on

DirectoryIndex Front.php

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+)/([^\.]+)\.php\ HTTP/
RewriteRule ^([a-zA-Z0-9_-]+)/([^.]+)\.php$ http://www.example.com/$1/$2 [R=301,L]

但是由于某种原因,当我键入www.example.com/Front.php页面加载但 url 没有改变时,它保持为/Front.php. 我需要添加/更改什么才能使其正确重定向?谢谢

4

1 回答 1

0

您的 RewriteRule 与您的 URL 不匹配。所以这里的重写没有任何反应。

您的 URL 是Front.php(开头没有斜线,因为您在 .htaccess 文件中)。正则表达式是^([a-zA-Z0-9_-]+)/([^.]+)\.php$- 这不匹配,因为除了其他内容之外,您的网址中没有斜杠。

不触发 RewriteRule 中的正则表达式会导致包括所有前面的 RewriteCond 在内的完整规则被忽略。

如果您的 .htacces 没有更多规则,那么就是这样。

您应该启用 RewriteLog 以查看发生了什么。

于 2012-10-08T22:10:25.417 回答