共计 697 个字符,预计需要花费 2 分钟才能阅读完成。
客户反应Magento的后台突然间无法使用,具体是,无论你进入后台做什么操作,Magento即不报错,也不提示任何信息。除了删除操作能够进行,其它的配置几乎没有任何效果。
其实这个问题我之前有碰见过一次,但是上次的原因以及如何解决我已经忘记了,所以这次一定要记录一下,尽管这次的原因是不一样的。
我在进入Magento后台操作了几次后,本来头脑中一直在回忆上次自己是如何处置的,实在想不起来,发现URL后台带了个session id字符串,猜想可能是由于magento cookie问题引起的,用ssh登陆进入到服务器上清空了所有的cache和session,refresh后发现还是有session id,而不管我使用的是哪个域名,带www和不带www的域名都会带。进入后台一查问题便清楚了。
在Magento后台设置的base url用的是短域名,而这两天为了SEO优化,在htaccess中将所有的短域名重定向到带www的域名。这样,不过用什么域名访问最后都会变成带www 的长域名,而magento地只以短域名来设置构造所有的URL,由于浏览器是根据域名来设置识别cookie的,尽管这两个域名是指向一个站点,但是就像是搜索引擎不把这两个视为等同,浏览器也是。所以就在后面带SID字符串。这其实是没有关系的,但是我想要么是magento的URL生成策略有点小问题,要么就是Magento的route对URL解析不能处理这种状况,然而这并不是由于Magento引起的,像这样的问题我们完全可以通过apache的mod rewrite模块来get rid of那个sid字符串,从而既解决了问题,又有利于seo.