Apache 将规则php重写为非php不工作

Apache 将规则php重写为非php不工作,apache,mod-rewrite,url-rewriting,rewrite,Apache,Mod Rewrite,Url Rewriting,Rewrite,我读了很多书,就我的理解而言,这似乎是正确的。 我尝试了几个不同的例子和场景,但似乎不起作用 我想从这两个文件中删除.php,我正在尝试下面的方法,但无法找出问题所在, 有什么想法吗 RewriteCond %{HTTP_HOST} ^404\.php [NC] RewriteRule ^(.*)$ /404/ [L,R=301] RewriteCond %{HTTP_HOST} ^recover-password\.php [NC] RewriteRule ^(.*)$ /recover

我读了很多书,就我的理解而言,这似乎是正确的。 我尝试了几个不同的例子和场景,但似乎不起作用

我想从这两个文件中删除.php,我正在尝试下面的方法,但无法找出问题所在, 有什么想法吗

RewriteCond %{HTTP_HOST} ^404\.php [NC] 
RewriteRule ^(.*)$ /404/ [L,R=301]

RewriteCond %{HTTP_HOST} ^recover-password\.php [NC] 
RewriteRule ^(.*)$ /recover-password/ [L,R=301]

谢谢

%{HTTP\u HOST}
无法匹配您的URL,它只匹配URL的主机名部分

在root.htaccess中将您的规则更改为:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+(recover-password|404)\.php[\s?] [NC]
RewriteRule ^ /%1/ [R=301,L]

RewriteRule ^(recover-password|404)/?$ /$1.php [NC,L]