在重写规则中循环,[L] 不起作用



我知道这已经被覆盖了,但我就是找不到问题的答案。

几年来,我一直有这个页面:www.mysite.com/page.php 但决定把它变成一个漂亮的网址:www.mysite.com/page/

我做的是:

RewriteRule ^page/?$ page.php [L]

一切都很好,但现在我也希望它反过来,所以如果有人输入 page.php,它会显示/page/,但我只是一个循环:

RewriteCond %{REQUEST_URI} !^/page/
RewriteRule ^page.php$ /page/ [R=301,L]

我不明白为什么。[L] 似乎不起作用,但使用 [end] 标志我得到 500。

这不是正确的方法。您可以使用:

RewriteEngine On
RewriteBase /
# external redirect from /page.php to /page
RewriteCond %{THE_REQUEST} s/+(page).php[?s] [NC]
RewriteRule ^ %1 [R=302,L]
# internal forward from /page to /page.php
RewriteRule ^(page)/?$ $1.php [L,NC]

相关内容

  • 没有找到相关文章

最新更新