Magento - URL 重写或重定向问题

Posted

技术标签:

【中文标题】Magento - URL 重写或重定向问题【英文标题】:Magento - URL rewriting or redirection issue 【发布时间】:2015-08-25 18:29:32 【问题描述】:

我在 Magento 版本 1.9.1.0 中运行一个站点,该站点启用了 SSL。当我在刷新浏览器缓存后或在私有模式下在浏览器上打开该站点的管理面板时,它第一次显示站点的主页而不是管理登录页面,即sitename.com/admin URL 第一次自动重定向到https://sitename.com URL。

当我第一次尝试直接访问网站的内页时发生了同样的问题。

之后,当我在浏览器的地址栏中再次输入 URL 为 sitename.com/admin 时,它会打开管理员登录页面,这在下次很好(似乎缓存有效)。

我在我的 Magento 网站中使用 Login and Pay with Amazon 扩展名。因此,当我使用 Amazon 登录时,在注入凭据后,它会显示如下错误:

没有收到数据。无法加载网页,因为服务器未在 chrome 上发送任何数据。

firefox 上的安全连接失败

我在 System > configuration > General > web 下的管理面板中使用基本 URL(不安全且安全为 https://sitename.com),这似乎是对的?我对我的.htaccess 文件这部分代码有疑问。我在.htaccess 文件中使用了以下代码:

############################################
## workaround for HTTP authorization
## in CGI environment

RewriteEngine On
RewriteCond %HTTPS off
RewriteRule (.*) https://%HTTP_HOST%REQUEST_URI


RewriteCond %SERVER_PORT 80
RewriteRule ^(.*)$ https://www.sitename.com/$1 [R,L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]

############################################
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks

RewriteCond %REQUEST_METHOD ^TRAC[EK]
RewriteRule .* - [L,R=405]

############################################
## redirect for mobile user agents

#RewriteCond %REQUEST_URI !^/mobiledirectoryhere/.*$
#RewriteCond %HTTP_USER_AGENT    "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
#RewriteRule ^(.*)$ /mobiledirectoryhere/ [L,R=302]

我的要求是:

网站始终以https 打开,运行良好。

当用户使用www 或不使用www 访问站点时,站点始终以https://sitename.com 打开。并避免在正常工作的 URL 中使用index.php

当我在第一个或第一个旁边的任何时候访问管理面板时,它应该显示管理员登录屏幕。

删除登录亚马逊后发生的错误。

请帮我解决这个问题。如果需要任何其他代码,请告诉我。

【问题讨论】:

这是 magento 的一个已知问题,据我所知至少达到 1.8。我有一个做很多公关的网站,记者只会添加或删除 www 而不测试他们的链接,这意味着他们的深层链接最终都会重定向到主页。几年前我研究了 htaccess 修复程序,结果一无所获,尽管我知道这会伤害这些网站,但大多数 magento 开发人员都知道这一点,并且认为这没什么大不了的。我希望有人能给出一个答案,它困扰我太久了 如果它重定向 www.example.com/page1 -> example.com/page1 会很好,可以使用规范 url 并有助于 share/+1 计数....但不幸的是它确实@ 987654339@ -> example.com 这不好。真的希望有人找到解决方法 第一次总是重定向到主页。无法直接访问内页。我知道问题应该出在 htaccess 中。 我认为 magento 的 url 重写系统很复杂,它不仅在 htaccess 文件中,还有一个它引用的重写表。就像重写系统无法处理一样......不管是什么原因,这对许多magento网站来说都是一个问题 【参考方案1】:

我认为如果您在 .htaccess 中进行以下重写,它将绕过这个 Magento 愚蠢; apache 会在 Magento 有机会之前适当地重写它:

RewriteCond %HTTP_HOST ^www\.domain\.com$
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

【讨论】:

嗨@twicejr,你能帮我解决这个问题吗,这是一个类似的问题,我在过去两周内陷入困境,也为这个问题提供了赏金......任何帮助表示赞赏.. .***.com/questions/50502192/…

以上是关于Magento - URL 重写或重定向问题的主要内容,如果未能解决你的问题,请参考以下文章

Magento 使用 302 重定向到基本 url,我如何让它使用 301

Magento 本地开发环境 URL 重定向

从 Django HttpResponseRedirect 或重定向中删除锚名称

php 过滤以在提交或重定向时从URL中删除联系表单7查询字符串。进入函数文件。

magento中的重定向

Magento 重定向 AWS 负载均衡器