我尝试删除文件扩展名并创建一个迷你路由器,根据其名称重定向多个页面,其中name
和name/
被重定向到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]
答案 0 :(得分:1)
当您在浏览器中输入%{REQUEST_FILENAME}
时,.php
中不会有/name/
,您的第二条规则将无效。
您可以使用此代码:
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]