Magento - URL重写或重定向问题

6
我正在运行一个启用SSL的Magento版本1.9.1.0网站。当我在浏览器中打开该网站的管理面板时,无论是刷新浏览器缓存还是在私人模式下,第一次都会显示网站的主页而不是管理员登录页面,即sitename.com/admin URL自动重定向到https://sitename.com URL。
当我尝试直接第一次访问站点的内部页面时,也出现了相同的问题。
之后,当我再次在浏览器地址栏中输入URL作为sitename.com/admin,然后它就会在下一次打开管理员登录页面,这很好(似乎缓存起作用)。
我在我的Magento网站中使用“Login and Pay with Amazon”扩展。因此,当我使用Amazon登录时,在注入凭据后,它会显示以下错误:
“没有收到数据。无法加载网页,因为服务器未在Chrome上发送任何数据。”和“Firefox上安全连接失败”。

我在管理员面板下的系统 > 配置 > 通用 > 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,这已经正常工作。

  • 无论是第一次还是第二次访问管理面板,都应该显示管理员登录界面。

  • 删除使用亚马逊登录后出现的错误。

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


1
这是Magento已知的问题,至少在我所知道的1.8版本中是如此。我的网站有很多公关活动,记者会随意添加或删除www而不测试他们的链接,这意味着他们的深层链接最终都会重定向到主页。几年前我研究了htaccess修复方法,但没有结果,虽然我知道这对这些网站造成了伤害,但大多数Magento开发人员认为这不是什么大问题。我希望有人能想出一个答案,这个问题困扰我太久了。 - RightClick
1
如果重定向是 www.example.com/page1 -> example.com/page1,那就可以使用规范的URL,并有助于分享/+1计数...但不幸的是它实际上是 www.example.com/page1 -> example.com,这不好。真的希望有人已经找到了解决方法。 - RightClick
1
第一次访问时,它总是重定向到主页。无法直接访问内部页面。我知道问题应该在htaccess中。 - Deep Kakkar
1
我认为这是由于Magento的URL重写系统变得复杂,它不仅存在于htaccess文件中,还有一个包含所有重写的表格。就好像那个重写系统无法处理它一样......无论原因是什么,这对许多Magento网站来说都是一个问题。 - RightClick
1个回答

3
我认为如果在 .htaccess 文件中加入以下重写规则,即可绕过Magento引起的问题;Apache会在Magento发挥作用之前适当地重写它:
RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

嗨@twicejr,你能帮我一下吗?这是一个类似的问题,我已经卡了两周了,还为这个问题设置了赏金...非常感谢任何帮助...https://stackoverflow.com/questions/50502192/magento-on-click-of-product-product-detail-page-does-not-work-page-refreshes-i - Sushivam

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