Php .htaccess删除文件扩展名后的尾随斜杠

Php .htaccess删除文件扩展名后的尾随斜杠,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我有一些指向我的网站的外部链接,这些链接指向文件扩展名后面带有斜杠的页面 我无法更改这些链接,但我想将这些链接重定向到以下格式: 我试过这个,但不起作用: RewriteRule ^(.*)\.php\/$ /$1/ [R=301,L] 非常感谢您的帮助。请在您的/.htaccess文件中尝试此功能 RewriteEngine On RewriteCond %{THE_REQUEST} /([^.]+)\.php/? [NC] RewriteRule ^ /%1/ [NC,R,L] Re

我有一些指向我的网站的外部链接,这些链接指向文件扩展名后面带有斜杠的页面

我无法更改这些链接,但我想将这些链接重定向到以下格式:

我试过这个,但不起作用:

RewriteRule ^(.*)\.php\/$ /$1/ [R=301,L]

非常感谢您的帮助。

请在您的/.htaccess文件中尝试此功能

RewriteEngine On
RewriteCond %{THE_REQUEST} /([^.]+)\.php/? [NC] 
RewriteRule ^ /%1/ [NC,R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /$1.php [L,NC]

它的作品!非常感谢你的帮助。想解释一下我为什么工作吗?这个解决方案中有两个单独的重写,这是301重定向吗?Keat,你问题中的规则不起作用,因为它将“foo.php”重定向到/foo,“/foo”在服务器上不存在,所以它返回404错误。我的规则将“/foo.php”重定向到“/foo”,然后将“/foo”映射回“/foo.php”。Keat,这是302临时重定向,为了使其永久化,将R改为R=301,例如:[NC,R=301,L]完美,效果很好。谢谢你的解释。我是否也需要将最后一行更改为R=301?不,不要更改最后一行。它不用于外部重定向。它用于将“file”映射到“file.php”(内部重定向)