WordPress站点为除索引之外的任何页面显示404

时间:2014-04-28 作者:Tom Oakley

我的WordPress网站在主页和/wp管理员之外的任何页面上返回404未找到错误。我完全不知道这是为什么。我的永久链接已设置为使用/year/month/date/post-title/ (例如www.domain.com/2014/04/28/sample-post/). 当我将永久链接更改为默认值时(?p=123) 它工作得很好,但对其他任何一个都不起作用。以下是.htaccess 文件:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
我还安装了插件“Debug This”,它提供了有关重写规则的详细信息。然而,因为它是一个相当大的列表,而且未格式化,看起来会非常糟糕,所以我将其放在JSFIDLE中,如下所示:http://jsfiddle.net/k8PHD/embedded/result/

我想这就是我所有的细节,我已经禁用了所有插件和类似的东西。谢谢你的帮助。

编辑:好的,我发现了更多的信息。我还忘了说网站的主机是Heroku(我在为一个客户构建,出于某种原因,他坚持我使用Heroku,这对WP来说是个糟糕的选择,我知道,但我无法说服他,所以这就是生活)。我最近安装了heroku-buildpack-php-tyler, 它还安装了Nginx。所以我想这就是打破我永久性思维的原因。然后我发现this post, 这似乎与我遇到的问题有关,它链接到Nginx文档的这个页面。问题是我以前从未使用过Nginx,所以我不知道在第一节题为《简略的基本设置》中,它的所有代码应该放在哪里。有人能帮帮我吗?谢谢:)

1 个回复
SO网友:s_ha_dum

您的服务器没有mod_rewrite 已启用或您没有AllowOverride 正确设置以允许.htaccess 文件以正确操作。您将需要AllowOverride 设置为至少FileInfo.mod_rewrite 非常普遍。

根据您的编辑,问题是Nginx没有使用.htaccess 文件。我使用Nginx的经验有限,但我相信重写规则会写入服务器配置文件。The Codex has a page on the topic.

结束