Windows 11 上的 Apache 2.4,因此是 localhost。
我正在运行一个 Wordpress 网站,Apache 可以正确提供除一个 URL 之外的所有 URL。一个 URL 出现 404 错误。Apache 错误日志包含此错误:
AH00687:协商:发现与请求匹配的文件:C:/wwwroot/site/the-page;(无法协商)。,引用者:http://localhost:8090/
Apache 为何可以为所有其他 PHP 页面(Wordpress 页面,而非帖子)提供服务,却不能为这个页面提供服务?
我需要做什么来解决这个问题?
该页面在生产环境中正常运行。我将 Wordpress 数据库恢复到本地主机,以防本地副本出现损坏问题,但问题仍然存在。
另请注意,对于所有其他 404 错误,Apache 都会提供我的自定义 404 页面。对于问题 URL,它仅提供通用 404 消息。
该 URL 最近在两周前还可以使用,恢复 .htaccess 文件也无法解决问题。
答案1
经过这么长时间,问题最终被证实是位于 WordPress 项目根目录中的一个随机文件的问题。具体来说:
/wwwroot/<project>/wp-content/themes/<theme>/page-my-page-file.php
/wwwroot/<project>/my-page-file.txt
换句话说:
WordPress 模板页面遵循以下约定:“page-*.php”并且位于主题的根目录中。
如果项目根目录中存在与模板文件同名但没有以“page-”开头的文件,则 Apache/WordPress 将不会提供该网页。
也许这会节省一些人的时间。