我知道这已经被覆盖了,但我就是找不到问题的答案。
几年来,我一直有这个页面: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]