.htaccess 从URL中删除From.PHP?

.htaccess 从URL中删除From.PHP?,.htaccess,redirect,.htaccess,Redirect,这是我的.htaccess文件: RewriteEngine On RewriteRule ^(.*)/$ /$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*)$ $1.php [NC,L] 当用户转到http://local/home,它工作正常,但如果用户转到http://local/home.php,.php停留在那里,它不会重定

这是我的
.htaccess
文件:

RewriteEngine On
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

当用户转到
http://local/home
,它工作正常,但如果用户转到
http://local/home.php
.php
停留在那里,它不会重定向到没有
.php
的页面,因此,不要像我研究过的那样将其标记为重复。

您没有任何规则将请求重定向到php扩展以在没有它的情况下重定向。这就是它留在那里的原因。仅仅因为您添加了一个规则来在内部重写缺少php扩展的请求,并不意味着它神奇地发生在另一个方向。在规则的顶部,您需要与实际请求相匹配,并在浏览器请求php文件时重定向浏览器:

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /(.+)\.php(\?|\ )
RewriteRule ^ /%2 [L,R=301]
更多:

只需要认识到规则只执行其要求执行的一件事情,将模式与URI匹配,并重写/重定向到目标