.htaccess htaccess:删除并禁用文件结束

.htaccess htaccess:删除并禁用文件结束,.htaccess,mod-rewrite,url-rewriting,rewrite,.htaccess,Mod Rewrite,Url Rewriting,Rewrite,我在互联网上到处张贴,你的.htaccess文件中的这段代码将删除文件结尾: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php 但是,尽管启用了不以文件结尾的URL,但它不会禁用以文件结尾的URL 本质上,我想强制任何以文件结尾(domain.com/sample.php)的请求的尝试以文件结尾(dom

我在互联网上到处张贴,你的.htaccess文件中的这段代码将删除文件结尾:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php
但是,尽管启用了不以文件结尾的URL,但它不会禁用以文件结尾的URL

本质上,我想强制任何以文件结尾(domain.com/sample.php)的请求的尝试以文件结尾(domain.com/sample)结束

我肯定有人会在某个地方报道这件事,但我什么也找不到


非常感谢。

在现有规则之前添加此额外规则:

RewriteCond %{THE_REQUEST} \s/+(?:index)?(.*?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]

还有一个问题/想法:现在最好保持链接,例如在站点导航中,不以文件结尾(href=“sample”),还是出于某种原因最好以文件结尾(href=“sample.php”)?最好将链接设置为
/sample
而不是
/sample.php
以上301规则适用于搜索引擎中的旧缓存链接。