【问题标题】:htaccess 301 redirect - how to disable it?htaccess 301 重定向 - 如何禁用它?
【发布时间】:2014-09-25 13:21:45
【问题描述】:

我错误地在我的网站上添加了 301 重定向(因为我正在进行维护)。现在很多人无法回到我的网站,因为他们仍然被重定向到其他页面 - 尽管我删除了重定向(甚至删除了 htaccess)。尽管我搜索它是因为 htaccess(或 301 重定向)被缓存在用户浏览器中,我无法找到任何解决方案。有没有办法解决这个问题,我不能因为这样的事情而失去数百名访客?

【问题讨论】:

  • 您是否尝试将其关闭再打开?
  • 你能重启你的网站服务器吗?
  • 我没有尝试重新启动服务器,是的,我可以重新启动它 - 我使用 VPS 和 DA 面板。我应该只重启 Apache 还是其他任何东西?
  • 我重启了整个服务器,还是一样,重定向还在发生。

标签: apache .htaccess mod-rewrite redirect


【解决方案1】:

此页面详细解释了正在发生的事情:

基本上,现代浏览器会将 301 的重定向响应缓存一段不确定的时间,并且不会向您的旧网页发出更新请求以刷新它。用户可以手动清除缓存,因为它是缓存,如果浏览器需要更多空间来存储其他数据(如其他重定向),可以清除数据。

这个超级用户问题从客户端解决了缓存问题:

一个有趣的答案是:

在这个答案中,用户指出浏览器将http://example.com/http://example.com/? 视为两个不同的URL。您可以转到“新”站点并设置一个 HTTP 302 重定向,指向原始页面,最后带有 ?,它应该会加载。如果他们的原始页面已经有一个查询作为 URL 的一部分,您可以简单地在末尾添加一个 & 以获得相同的结果。

这并不完美——毕竟它是一个不同的网址——但至少他们可以查看您的旧网站。

请注意,您的 Web 应用程序可能会尝试将空查询或无效查询重定向回“干净”页面,您可能必须禁用该页面才能获得预期结果。

更新
另一种选择是将新站点重定向回旧站点(将其设为 302 或 307 重定向以避免您当前遇到的 301 问题)。根据我的测试,Chrome 会在执行此操作时删除旧的重定向。它可能会抛出“重定向循环”错误,但只会抛出一次。使用最新版本的 Firefox,我根本无法重现缓存重定向问题。其他浏览器的行为可能会不一致。

【讨论】:

  • 我不能使用不同的 URL,很多东西都连接到那个 URL。还有其他方法吗?该缓存需要多长时间才能自行清除?
  • 我添加了另一个可能的解决方案。浏览器将尽可能长时间地保留缓存条目(通常受空间限制)。缓存自行清除没有设定时间,浏览器在这方面的行为并不一致。
  • 在我的情况下,我无法尝试第二种可能的解决方案,因为我重定向到了谷歌,我不拥有并且无法在那里进行重定向。 :) 但我只是为了测试而尝试,这个解决方案确实有效,但你必须重定向到你自己的网站(你不使用它 - 如果你使用它,来自该页面的用户将再次被重定向到第二页,因为该重定向)。如果用户来自 1. 重定向页面(或缓存重定向),是否有任何方法可以检查 htaccess,然后他被重定向,但如果他没有,他不是?
  • 如果人们实际上是通过您的旧的、未重定向的 URL 请求该页面,那么您根本不需要有条件地重定向他们。此时缓存已被清除。如果您无法访问重定向的两端,那么作为服务器操作员,除了要求您的用户手动清除缓存之外,您无能为力。
  • 问题是我不能要求人们清除缓存,因为他们再也看不到我的页面了。所以基本上,如果您无法访问第二页(用户被重定向的地方),那么您无能为力吗?但是,如果您可以访问该页面,那么您可以进行重定向 - 但是我们应该使用什么代码来检查访问的 URL 是有缓存问题的 URL 还是正常的,然后仅重定向回用户来自重定向的 URL?
猜你喜欢
  • 2011-05-01
  • 2011-01-03
  • 2012-03-10
  • 2021-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多