问题 302重定向如何发生?


我在Magento网站上遇到了一个问题,我正在进行302重定向。如果我禁用了主题的默认博客模块,则网站/主题中的某些内容会导致site.com/blog链接上的302重定向转到主页。我正在尝试将该URL用作WordPress安装的主页,但是这个本机模块已经劫持了它,我无法找到它发生的位置。

如果该模块已打开,则可以正常使用该链接但是当您将其关闭时,它会重定向。我猜这是原生模块但由于某种原因我似乎无法改变这种行为并完全禁用它(理想情况下,如果我在博客模块关闭时出现404错误会很好,因为至少我知道该URL可供我使用)。

关闭模块后,我访问了Chrome上的页面,并在“开发人员工具”的“网络”标签上收听。确实会出现302重定向。

HTTP/1.1 302 Moved Temporarily
Date: Sat, 08 Aug 2015 00:01:45 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Frame-Options: SAMEORIGIN
Set-Cookie: frontend=80cfd66318165451fa4aa2915d139404; expires=Sat, 08-Aug-2015 02:01:45 GMT; path=/; domain=www.example.com; httponly
Location: http://www.example.com/
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

GET /blog HTTP/1.1
Host: www.example.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Cookie: _gaost=.rk=; _gaos=.gaos_r=(direct).mc=(no)|(no)|(no).gaos_k=.pc=2; __ar_v4=M5J3LQW4MFADRNVY2ORZM7%3A20150610%3A4%7CN3LC2IOELZFOVNMCXKXXWV%3A20150610%3A4%7C5DCLBJIK7FDQFMXMCEDBUU%3A20150610%3A4; frontend=80cfd66318165451fa4aa2915d139404; __utma=176154288.93372352.1432329461.1435683793.1435792914.29; __utmz=176154288.1432329461.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __atuvc=3%7C26%2C3%7C27%2C17%7C28; adminhtml=d90076dbca44dcccdd004d86240b9683; adminhtml=d90076dbca44dcccdd004d86240b9683; frontend=80cfd66318165451fa4aa2915d139404

我知道302s可能是由.htaccess文件引起的,所以我连接到服务器并使用 find 找到服务器上的所有.htaccess文件(并找到17),但它们都没有任何会影响该页面的重定向代码。

有没有办法检测302重定向发生的位置/原因/方式?这个模块/插件没有关于这个问题的文档,我到处寻找,甚至联系了开发人员,但没有收到回复。

谢谢你的帮助。


11107
2017-08-08 00:39


起源

302重定向不仅仅是因为.htaccess,搜索而发生的 header("Location: 声明。运行一个grep,看看你是否能找到邪恶的行为者。 - Rimble
在做了@Tom Kriek所说的话之后,先刷新缓存然后再试一次。 - Valentin Montmirail
@TomKriek,非常想到这一点。我运行了一个grep,没有找到任何与博客相关的标题调用。是否有其他302重定向的实例,我没有考虑到? - MillerMedia


答案:


我发现了这个问题。

这与Magento中的“路由”有关。有一个名为addRoute的函数,我在服务器上做了一个grep,寻找'addRoute',发现了一堆正在发生的文件。

然后,我能够找到整个博客模块正在进行重定向的文件夹,并且必须通过模块的逻辑并禁用其类中的一些功能。


7
2017-08-13 17:47





Magento是一个拥有大量选项和功能的绝佳平台,但302重定向几乎发生在每个电子商务/博客网站上。

有很多问题 302 redirection in Magento

有时你设置301重定向 System > Configuration > General > Web > Url Options 但它一直显示302,有时你得到关于大量页面的警报 example.com/blog/post/1234 302重定向等

Magento自动为网址设置302重定向,例如:

  • 加入对比
  • 加入愿望清单
  • 切换货币
  • 切换位置
  • ...

(资源: https://www.mavenecommerce.com/blog/302-redirects-in-magento/

所以试着去 System > Configuration > General > Web > Url Options 直接从Magento选项中更改(如果可能)。它可能直接从那里改变它。


3
2017-08-12 09:09



当“www”不在浏览器中的URL前面时,可以选择执行302重定向,但这并不能解决我正在寻找的问题。它似乎不是一个全网站的302 ... - MillerMedia