WordPress递归重定向问题

Posted

技术标签:

【中文标题】WordPress递归重定向问题【英文标题】:WordPress recursive redirect problems 【发布时间】:2012-03-29 09:51:15 【问题描述】:

我们遇到了递归重定向问题。到目前为止,我们只注意到这种情况发生在 Safari、Mobile Safari 和 Firefox 中。在 Chrome 中似乎永远不会发生这种情况。

起初,问题似乎只在我们省略尾部斜杠时发生,但现在无论是否使用尾部斜杠,它都会发生,有时它甚至会将我们完全重定向到不同的页面。

.htaccess 文件在下面。当漂亮的永久链接处于活动状态时,它只是默认的 .htaccess。

重写引擎开启 RewriteBase / 重写规则 ^index\.php$ - [L] RewriteCond %REQUEST_FILENAME !-f RewriteCond %REQUEST_FILENAME !-d 重写规则。 /index.php [L]

我目前无法提供指向给我们错误的站点或页面的链接,因为其中包含敏感信息。我将尝试创建一个重复错误但现在没有时间的页面。请任何帮助将不胜感激。我们不确定这是服务器配置问题、htaccess 还是 WordPress 中的问题。

我们没有可用的插件,并已尝试将主题切换为默认主题,但问题仍然存在。

【问题讨论】:

先尝试清除浏览器缓存。 Apache 重定向不是特定于浏览器的。 完成...一百万次。 这个问题发生在new.whitehardt.com,如果你导航到任何内部页面并从 URL 中删除试用斜线,然后尝试导航到该页面,它将导致 99% 的递归重定向Firefox 中的时间。在 chrome 中它不会发生在我身上,但这里的其他开发人员确实在 chrome 中发生了它。请有人对此提供一些见解,因为我们正在努力修复它。 我看到它发生在 firefox 和 chrome(也是 Canary)中。 301 有一个“由 php 提供支持”的标头,所以不是 apache 这样做的。请参阅下面的修复程序。 【参考方案1】:

不确定这是否有帮助,因为第一次重定向是正确的并添加了斜杠,似乎有些严重错误,但随后的重定向重定向到相同的 url。我也可以在 301 之后的请求中看到任何不同,或者通过自己将 url 放在地址栏中的请求。

比解决方案更多的是尝试并始终使用 htaccess 自己添加斜线。

RewriteEngine On
RewriteBase /

RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond $0 !/$
RewriteRule .* $0/ [R,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]

【讨论】:

以上是关于WordPress递归重定向问题的主要内容,如果未能解决你的问题,请参考以下文章

wordpress url 重定向挂钩 | PHP |

wordpress重定向及nginx配置

WordPress - JS 和 CSS 文件被 301 重定向?

WordPress 重定向插件,用于在目标 URL 中包含查询参数

钩子在 wordpress 上重定向

将Drupal路径重定向转换为WordPress插件重定向