特定固定链接的页面返回404

时间:2017-06-14 作者:upwut

在mysite上有一个名为locations的页面。com/位置/。将其重命名为/locations old/,并在/locations/创建了一个新页面。遇到重定向问题并永久删除/位置旧/。但是/位置/返回为404。

如果我将permalink设置更改为plain(/?p=123/),或者为页面提供父级(/foo/locations/),页面工作正常。如果我用一个字母来更改slug名称,那么页面也可以工作。

我已经尝试了所有我能想到的方法和研究来解决这个问题,包括重置永久链接,使用flush_rewrite_rules(); (无论是否更改我的.htaccess权限)、删除和重新创建页面、从数据库中删除旧页面以及优化我的网站。

我的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
一个有趣的注意事项是我使用了var_dump($wp_query); 在我的404页面上,它返回一个原始/位置/页面的页面id,即使我已经从wp\\U帖子中删除了它。

如何修复404并正确提供页面?

1 个回复
SO网友:WebElaine

检查Posteta表中的数据库,以获取meta\\u密钥_wp_old_slug. 当您更改一个slug时,WP会存储它并自动将旧的重定向到新的,这听起来像是您最初无法访问/locations/的原因。

删除postmeta后,请访问Settings>Permalinks for good measure(这会刷新Permalinks),并尝试使用匿名窗口或HTTP标头检查器来验证/位置/URL是否按预期工作。您的浏览器缓存重定向,因此仅在常规窗口中进行检查可能会产生误导。

结束