如何在不更改所有链接的情况下删除.php扩展名

时间:2017-02-14 09:02:03

标签: php .htaccess redirect mod-rewrite hyperlink

如何在不更改所有链接的情况下删除.php扩展名(以及在所有链接中可能的html)? 我有搜索,我找到了这个解决方案:

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

它工作正常,但有一个问题,实际上在我的标题(或所有帖子形式)中,我的链接看起来像这样:

<a href="action.php">Action</a>

然后用户点击,网址为:

mysite.com/action.php

我怎么办我的所有网址都没有.php exentison而不更改我网站上的所有链接

谢谢

1 个答案:

答案 0 :(得分:3)

这将有效

 RewriteEngine on

RewriteRule ^(.+)\.php$ /$1 [R,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [NC,END]

在apache 2.4及更高版本中,END标志用于防止无限循环错误。