拥有以下mod_rewrite规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteRule ^index\.php$ / [R=301,L]
</IfModule>
从我的任何网址中删除.php。
但是,如果我尝试指定301重定向到已经存在的页面:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteRule ^index\.php$ / [R=301,L]
RewriteRule ^something-page\.php$ /something-page [R=301,L]
</IfModule>
服务器无法解析域。
我想我似乎把自己置于一个递归循环中。
任何帮助很多赞赏!
答案 0 :(得分:0)
RewriteRule ^(.*)$ $1.php
这会将“/ something-page”重定向到“/soemthing-page.php”,然后依次点击:
RewriteRule ^something-page\.php$ /something-page [R=301,L]
将some-page规则置于通用.php重写规则之上,并将其标记为[L]。