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

如何在不更改所有链接的情况下删除.php扩展,php,.htaccess,redirect,mod-rewrite,hyperlink,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="acti

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

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
它的工作很好,但有一个问题,事实上,在我的标题(或所有帖子表单)中,我的链接如下所示:

<a href="action.php">Action</a>
如何在不更改网站中的所有链接的情况下处理我的所有url没有.php exentison

谢谢

这会有用的

 RewriteEngine on

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

在Apache2.4及更高版本上,结束标志用于防止无限循环错误。

这将起作用

 RewriteEngine on

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

在Apache2.4及更高版本上,结束标志用于防止无限循环错误。

RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-d RewriteCond%{REQUEST_FILENAME}\.php-f RewriteRule^(.*)$$1.php
这可能对RewriteCond%{REQUEST_FILENAME}上的重写引擎非常有用-d RewriteCond%{REQUEST_FILENAME}\.php-f RewriteRule^(.*)$$1.php这可能有用,我不是说你的代码不起作用,但是你能向OP解释一下,为什么你用
[NC,END]
而不是
[NC,L]
,为什么OP的代码的行为如此。在apache 2.4及更高版本上,结束标志用于防止无限循环错误。谢谢,请将其添加到您的答案中,以便Op和其他有类似问题的人可以从itGood中学习它的工作!但是在localhost中,我有这样一个问题:但是我想,我该怎么做?谢谢用RewriteRule.*\替换最后一行。php$%%{REQUEST_FILENAME}.php[NC,END]我不是说你的代码不起作用,但是你能向OP解释一下,为什么你用
[NC,END]
而不是
[NC,L]
,为什么OP的代码的行为是这样的。在apache 2.4和更高版本上,END标志用于防止无限循环错误。谢谢,请将此添加到你的答案中,这样Op和其他有类似问题的人就可以从中吸取教训了,这很好!但是在localhost中,我有这样一个问题:但是我想,我该怎么做?谢谢用RewriteRule.*\替换最后一行。php$%{REQUEST_FILENAME}.php[NC,END]