302 重定向是如何发生的?

How is 302 Redirect Happening?

我在使用 302 重定向处理的 Magento 网站上遇到问题。 site/theme 中的某些内容导致网站发生 302 重定向。如果我禁用了主题的默认博客模块,com/blog link 会转到主页。我试图让 url 用作 WordPress 安装的主页,但是这个本机模块已经劫持了它,我找不到它发生的地方。

如果模块打开,没问题并使用 link 但是当您关闭它时,它会重定向。我猜这是该模块的原生功能,但出于某种原因,我似乎无法更改该行为并完全禁用它(理想情况下,如果我在博客模块关闭时收到 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

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

有什么方法可以检测到 where/why/how 302 重定向是否正在发生?没有关于此问题的文档 module/plugin,我到处查看甚至联系了开发人员但没有收到回复。

感谢您的帮助。

Magento 是一个很棒的平台,具有大量的选项和功能,但 302 重定向几乎在每个 eCommerce/blog 网站上都会发生。

关于 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/

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

我发现了问题。

这与 Magento 中的 'routing' 有关。有一个名为 addRoute 的函数,我在服务器上执行了一个 grep 查找 'addRoute' 并找到了它正在发生的一堆文件。

然后我能够找到整个博客模块进行重定向的文件夹,并且只需要检查模块的逻辑并禁用其中的一些功能 class。