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

.htaccess 重写规则,将`name`和`name/`重定向到`name.php`,.htaccess,routing,.htaccess,Routing,我正在尝试删除文件扩展名并创建一个迷你路由器,该路由器根据页面名称重定向多个页面,其中name和name/被重定向到htaccess中的name.php 这就是我现在拥有的(包括删除www) 您的第二条规则将不起作用,因为当您在浏览器中输入/name/时,%{REQUEST\u FILENAME}将不包含.php 您可以使用以下代码: RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ http://

我正在尝试删除文件扩展名并创建一个迷你路由器,该路由器根据页面名称重定向多个页面,其中
name
name/
被重定向到htaccess中的
name.php

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


您的第二条规则将不起作用,因为当您在浏览器中输入
/name/
时,
%{REQUEST\u 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]

这似乎没什么用你用什么URL测试的?这个.htaccess在哪里?您遇到了什么错误?提供尽可能多的信息。同时告诉我
/name/
是否为真实目录?这是我的第二条评论。我在我的第一篇评论中也问了几个问题。oops,没有回答,我正在本地XAMPP上测试,我没有文件夹,只有一个php文件和一个.htaccess文件
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]