302重定向是如何发生的?

时间:2015-08-08 00:39:12

标签: php .htaccess redirect http-status-code-302

我在Magento网站上遇到了一个问题,我正在进行302重定向。如果我禁用了主题的默认博客模块,则网站/主题中的某些内容会导致site.com/blog链接上的302重定向转到主页。我试图将该网址用作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文件引起的,所以我通过SSH连接到服务器并使用find找到服务器上的所有.htaccess文件(并找到了17个),但没有一个有任何重定向代码会影响该页面。

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:7)

我发现了这个问题。

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

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

答案 1 :(得分:3)

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

有很多关于302 redirection in Magento的问题。

有时您在System > Configuration > General > Web > Url Options中设置了301重定向,但它会一直显示302,有时您会收到有关大量网页的警报,例如example.com/blog/post/1234,其中包含302重定向等。

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

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

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

因此,尝试直接从Magento选项转到System > Configuration > General > Web > Url Options更改(如果可能)。可能直接从那里改变它。