将 .php 重定向至无扩展名?

将 .php 重定向至无扩展名?

我对使用 mod rewrite 非常非常(非常!)陌生...我在 htaccess 中设置了以下内容,它可以按预期删除 .php 扩展名。我的问题是,如果有人在 URL 末尾添加任何扩展名,如何使 URL 也无扩展名?现在http://www.example.com/share等等都有效,但也有http://www.example.com/share.php。我想删除这些页面上的所有扩展!

Options +FollowSymlinks
RewriteEngine on
# remove php extension from all matching files
RewriteRule ^(share|invite|submission|thankyou|confirm|over|report)$ $1.php [NC]

我尝试了几种方法,但总是会破坏这两种功能。出于某种原因,这种东西是最不可能在谷歌上找到快速答案的东西。提前谢谢!

更新:以某种方式工作,但出现无限重定向循环:

Options +FollowSymlinks
RewriteEngine on
# reslove extensionless urls
RewriteRule ^(share|invite|submission|thankyou|confirm|over|report|emailtest)$ $1.php [NC]
# make .php redirect to extensionless urls
RewriteRule ^(share|invite|submission|thankyou|confirm|over|report).php$ /$1 [R=301,L,QSA]

答案1

您的意思是,如果有人输入.../share.php,您希望它变成.../share?如果是这样,您需要重定向它。

RewriteRule ^(share|invite|submission|thankyou|confirm|over|report).php$ /$1 [R=302,L,QSA]

如果有效,请将 302 更改为 301,以使其执行永久重定向。

相关内容