我正在Magento
版本1.9.1.0中运行已启用SSL
的网站。当我在刷新浏览器缓存或私有模式后在浏览器上打开该网站的管理面板时,第一次显示网站的主页而不是管理员登录页面,即sitename.com/admin
网址重定向到第一次自动https://sitename.com
网址。
当我第一次尝试直接访问网站的内页时发生了同样的问题。
此后,当我在浏览器的地址栏中再次输入URL为sitename.com/admin
时,它会打开管理员登录页面,这对下次有用(似乎缓存有效)。
我在Magento网站上使用Login and Pay with Amazon
扩展程序。因此,当我使用亚马逊登录时,在注入凭据后,它会显示错误,如下所示:
未收到任何数据。无法加载网页,因为服务器未在chrome上发送任何数据。
在Firefox上安全连接失败
我在System > configuration > General > web
下的管理面板中使用基本网址(不安全且安全为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
。并避免在工作正常的网址中使用index.php
。
当我在第一个或第一个旁边的任何时间访问管理面板时,它应显示管理员登录屏幕。
删除使用亚马逊登录后发生的错误。
请帮我解决这个问题。如果需要任何其他代码,请告诉我。
答案 0 :(得分:2)
我认为如果你在.htaccess中进行以下重写,它将绕过这个Magento的愚蠢;在Magento有机会之前,apache会适当地重写它:
RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]