更新固定链接设置时会发生什么情况?

时间:2014-05-10 作者:bestprogrammerintheworld

我有两个相同的副本,同一个网站在两个不同的网络托管公司(除了实际的域名当然)。其中一个可以一直与漂亮的permalinks配合使用,另一个可以正常工作一天左右,但是突然之间它不起作用了,permalink提供了一个404文件找不到,但只有在查看一个名为single的自定义贴子页面时才起作用-<cpt-name>.主题文件夹中的php。

当我进入管理/永久链接页面时,网站再次开始工作(自定义帖子页面再次显示)

我的想法是,这必须与服务器相关。一直正常运行的站点有PHP 5.4,而一直不正常运行的站点有PHP 5.5,但我认为PHP的版本不是问题所在。两个站点都有WP 3.8。

我正在使用一个名为WP Supercache的cacheplugin,但这似乎不是问题所在,因为该站点再次使用cpt,而不刷新缓存(在admin中查看permalinksettings后)

我正在使用permalink结构:/%postname%/

我想知道如何调试这个?为了让我调试这个I want to know what happens (programmatically) when permalink-settings are updated? <嗯,我认为。根文件夹中的htaccess(与wp\\u config.php相同)已更改。(根据一些读数)这是正确的吗?

我想知道是否有插件会导致这个问题?(一个插件,不知怎么搞砸了永久链接)

我的htaccess如下所示(工作时):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

2 个回复
SO网友:George Grigorita

没错,更新永久链接时htaccess 文件也会更新。

当您创建或更新一个“漂亮的”永久链接结构时,WordPress将生成重写规则并尝试将其插入到适当的。htaccess文件。如果不能,它会说“您应该立即更新您的.htaccess”,并打印出规则,供您复制并粘贴到文件中(放在最后)。

资料来源:WordPress Codex.

首先,验证htaccess 文件具有适当的行。然后验证托管服务器是否满足所有要求(apache, mod_rewrite 等等)。最后,禁用所有插件,看看它是否能像那样工作。如果可行,请一次启用一个插件来查找导致问题的插件。

SO网友:bestprogrammerintheworld

当永久链接这次被破坏时,我检查了htaccess文件中的任何更改。没有变化。当我在admin中转到permalink设置页面,并在浏览器中重新加载网站时,一切正常,BUT 现在也没有对htaccess进行任何更改。因此,一定还有其他一些东西在以某种方式更新永久链接设置的使用。

所以我进一步挖掘。。。

我其实是在骗你们(但不是故意的)。这不是我想象中的完全相同的网站副本。我比较了两个站点中的所有文件。。。有一个小小的区别,这似乎真的很重要。我有singe-<cpt>.php 在开发站点上的父主题中(我不久前将其复制到开发站点的文件中),但不在实时站点上。

我使用了儿童主题,并将氧气主题作为家长主题。

live站点的结构如下:(更新permalinks后工作了一段时间)

- themes
-- oxygen
-- childtheme
--- single-<cpt>.php
开发现场的结构:(一直在工作)

- themes
-- oxygen
--- single-<cpt>.php
-- childtheme
--- single-<cpt>.php
出于某种原因singe-<cpt>.php 并不是每次都能在childtheme中找到它。它工作了一段时间(大约一天左右。我还不知道确切的时间)。出于某种原因,Wordpress只搜索single-<cpt>.php 在父主题(氧气)中的特定时间。

现在我在现场有了这个结构:

- themes
-- oxygen
--- single-<cpt>.php
-- childtheme
--- single-<cpt>.php
自从我做了这个改变后,它就一直是wokring。

这个问题似乎只适用于single-<cpt>.php, 例如,不是taxonomy-<name of taxonomy>.php

我不知道这是一个核心WP问题还是一个氧气主题问题,但我现在真的没有时间深入研究它。如果有人想探讨这个问题,我真的会对实际问题所在感兴趣。

结束