重写规则,将' name '和' name/ '重定向到' name.php '



我试图删除文件扩展名并创建一个迷你路由器,根据它们的名称重定向几个页面,其中namename/在htaccess中重定向到name.php

这是我现在拥有的(包括删除www)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !.php$
RewriteRule ^(.*)$ $1.php [L]

您的第二条规则将不起作用,因为当您在浏览器中输入/name/时,%{REQUEST_FILENAME}将不包含.php

您可以使用以下代码:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,NE,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]

最新更新