当.php不存在时,如何显示Apache的404错误

当.php不存在时,如何显示Apache的404错误,php,apache,wordpress,Php,Apache,Wordpress,我有如下重定向设置的WP站点: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] #RewriteCond %{REQUEST_FILENAME} !-f #RewriteCond %{REQUEST_FILENAME} !-d #RewriteRule . /index.php [L] </IfModule> 重新启动发动机 重写基/ 重写规

我有如下重定向设置的WP站点:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /index.php [L]
</IfModule>

重新启动发动机
重写基/
重写规则^index\.php$-[L]
#重写cond%{REQUEST_FILENAME}-F
#重写cond%{REQUEST_FILENAME}-D
#重写规则/index.php[L]
这适用于所有URL。但是如果我访问像“/file/does/not/exist.php”这样的url,它会显示一个WP 404错误页面。我不希望该请求到达WP,它应该显示来自apache的404


所以“/file/does/not/exist”应该转到wp404页面(它确实存在),但是“/file/does/not/exist.php”应该是Apache的404,这与
冲突-f
RewriteCond(“不是文件”)。缺少的脚本不是文件,因此可以满足重写条件。您可能需要特别检查文件名是否包含“.php”,而不是重写为wordpress。但如果有人试图访问其他文件扩展名(也应该是404),该怎么办?

你说得对。我在第一个重写规则之后添加了另一个重写规则,专门检查文件是否为.php且不存在,它返回404头。我还没有处理其他文件扩展名。有什么线索吗?你可以把所有特定于wordpress的可重写URL放在路径的/wp前缀下。没有/wp前缀的任何内容都不应该被重写,并让常规处理规则生效。