无法删除301重定向

21

我不小心把websiteA.com做了301重定向到了websiteB.com。但是即使我已经从.htaccess文件中删除了这个重定向,它仍然在继续生效。我在本地网络之外尝试了一下,结果也仍然重定向。我已经清除了缓存并且尝试了一个不同的浏览器。

有人有什么建议吗?

更新:

如果我在.htaccess文件中添加一个302重定向,网站会遵守它。但是当我将其删除时,旧的301重定向仍然发生。

websiteA.com的.htaccess文件:

# -- concrete5 urls start --

Options -Indexes

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
# -- concrete5 urls end --

#RewriteCond %{HTTP_HOST} ^.*$
#RewriteRule ^/?$ "http\:\/\/www\.websiteB\.co\.uk\/" [R=301,L]

请在此处发布您的完整.htaccess文件。 - anubhava
这段代码看起来没有明显的问题,你能检查一下你的access.log中是否有匹配的行吗? - anubhava
你好 :) 当我访问网站时,使用 "tail -f websiteA" 命令查看访问日志,会出现以下一行记录:1.1.1.1 - - [24/Feb/2012:13:37:45 +0000] "GET / HTTP/1.1" 301 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2" - beingalex
好像原始的301永久重定向被缓存到了某个地方。它没有被缓存在我的本地网络中,因为我们尝试在一个使用3G网络的手机上进行了测试。 - beingalex
.htaccess没有被缓存,我怀疑你的DOCUMENT_ROOT中可能有一些杂乱的.htaccess文件,或者你的代码正在进行重定向。你能否启用RewriteLog并检查日志条目? - anubhava
我找到了问题所在。我在网站的配置PHP文件中有一个基本URL常量,它的地址是错误的。无论如何,还是感谢您的帮助。 - beingalex
6个回答

19

尝试在开发者控制台 (F12) 打开的情况下访问网站

确保在“网络”标签下勾选“禁用缓存”

bypass 301 redirect

这将绕过浏览器端的301重定向缓存。


17

浏览器将301 Moved Permanently缓存,直到有其他通知为止。这是默认行为:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2

要在IE9中解决此问题:

  1. 打开IE9并按Ctrl+Shift+P进行私密浏览
  2. 导航到出现问题的URL
  3. 然后返回普通浏览模式,所有内容应该正常

3
我认为在Firefox浏览器中执行"Ctrl-F5"和/或清除缓存就足够了。 - Filip Cornelissen

8

只需删除关于重定向的行即可。

对于所有使用Google Chrome的人,请按照以下步骤操作:

  1. 从您的键盘上按下CTRL + SHIFT + DELETE。
  2. 仅勾选“文件和图像存储在缓存中”
  3. 选择“自上周以来缓存中存储的元素”

这将清除您的所有缓存,之后您就可以正常使用了。


2
你是指SUPR这几个字母,还是它是某些键盘上的一个按键? - I Want Answers
1
做得好!!!解决了我的问题!!! - CFD

6

永久重定向缓存可能在浏览器中
在大多数浏览器中,删除它比较棘手。
但首先,请尝试使用另一个浏览器来查看是否存在此情况。

如果缓存在浏览器中,则清除该网站的浏览器数据无效。

要删除重定向,每个浏览器都有一种方法:

教训
在处理重定向时,请首先使用[302]。
在所有测试通过后,将代码更改为[301]


R 302是开发环境中的安全选择。 - Faizan Anwer Ali Rupani

0

我知道这是一个旧帖子,但我花了一些时间在网上和我的服务器上找到答案。

如果您创建了一个具有永久重定向的.htaccess文件,则服务器将在以下文件中复制此重定向:“/var/.htaccess”。

在清除浏览器缓存之前,您必须编辑此文件以删除重定向。

这在我的Debian Jessie上运行良好。


我不确定文件的绝对路径是否对提问者有所帮助,而且你指定的路径可能是错误的(除非你的主页位于/var下)。 - Peanut
你说得对,在这种情况下路径必须是 /var,谢谢。 - user4078735

-1

尝试重新启动Apache

(在Ubuntu服务器上: service apache restart 或者 /etc/init.d/apache2 restart)


301重定向存储在每个用户浏览器中,而不是服务器上,因此它并没有真正帮助。 - MasterMastic
重定向可能会在浏览器级别被缓存,但是它是由服务器抛出的。也就是说,更改 .htaccess 不需要重新启动 Apache,所以我肯定是错的。https://dev59.com/uXVC5IYBdhLWcg3w7V33 - buley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接