我在一个子目录中安装了magento.www.domain.com/subdir/magento
这个网站在某一点上完美运作.我一无所知,直到我的客户说他无法登录magento admin.
我从我的计算机上登录得很好,但是在他的计算机上它只是重定向回magento管理员登录而没有错误消息和一个看起来像这样的傻瓜的网址:
http://domain.com/subdir/magento/index.php/admin/index/index/key/3097210b826ac4a86d7531cb4089c9d0/
Run Code Online (Sandbox Code Playgroud)
我以为他的饼干被封锁了,但事实并非如此.
我的magento设置是安全/不安全的baseurl: http://domain.com/subdir/magento/
web cookie path: (blank)
web cookie domain: (blank)
Run Code Online (Sandbox Code Playgroud)
清除var/cache之后,我发现我自己无法登录管理员,但问题完全相同.
我没有运气就尝试了以下设置:
path: /
domain: domain.com
path: /subdir/magento
domain: vigrond.com
Run Code Online (Sandbox Code Playgroud)
我也尝试过评论这些行Varien.php,但这也没有效果.
我的服务器帐户是VPS,它有足够的可用空间.
所以我几乎迷失了,想知道为什么这首先发生在它之前的工作(没有改变任何东西),为什么它如此复杂?
任何帮助赞赏
Ala*_*orm 15
如果没有显示登录错误消息("无效密码"等),则几乎总是会话cookie问题.为了完全统治它,请使用浏览器的cookie查看器和/或您喜欢的HTTP流量嗅探器并检查
所有cookie在设置后都有适当的到期日期
会话cookie具有每个请求的一致的令牌名称/值
当PHP通过Magento运行时,它具有合理值的各种会话生命周期ini设置
PHP可以写入任何用作cookie存储介质的内容
服务器的时间与实时相匹配,并且PHP本身设置了时区
Fur*_*ury 11
查找app/code/core/Mage/Core/Model/Session/Abstract/Varien.php.在您的Magento安装文件夹中.注释出行(见下文)80到83.行号可能有所不同.
// set session cookie params
session_set_cookie_params(
$this->getCookie()->getLifetime(),
$this->getCookie()->getPath()//,
//dependes which versin of mage you are using, you may comment these as well
//$this->getCookie()->getDomain(),
//$this->getCookie()->isSecure(),
//$this->getCookie()->getHttponly()
);
Run Code Online (Sandbox Code Playgroud)
这是缓存问题.最近Magento社区确认已经排序,但事实并非如此.:)
只需清除缓存并执行此步骤即可.
也请注意这一行
// if (!$cookieParams['httponly']) {
// unset($cookieParams['httponly']);
// if (!$cookieParams['secure']) {
// unset($cookieParams['secure']);
// if (!$cookieParams['domain']) {
// unset($cookieParams['domain']);
// }
// }
// }
//
// if (isset($cookieParams['domain'])) {
// $cookieParams['domain'] = $cookie->getDomain();
// }
Run Code Online (Sandbox Code Playgroud)
确保您在浏览器中启用了Cookie,尝试使用多种不同的浏览器,包括Safari或Opera.Chrome会出现一些问题,您需要记住在更改后清除Chrome中的缓存!
确保您的文件权限设置为EVERYONE - 适用于Windows的全部控制和适用于Mac/Linux环境的777如果仍然无效,您可以尝试:(我不建议将此解决方案用于Magento的生产版本,但是为你本地测试环境这将工作.)
您是否删除了 var 目录中的会话存储?
就我而言,当我在子域上对 multistore 进行自动化时(像您一样更改了 cookie 的路径和域),此方法帮助我删除了“坏”cookie 并成功登录到管理员:
在 apppath/var/session 目录中,我在 shell 中创建了命令(注意路径,这可能会删除目录中的所有文件)
rm -rf /path/to/magento/var/session/*
Run Code Online (Sandbox Code Playgroud)
然后只需在浏览器中清除域的 cookie。
我从未解决过这个问题。但我擦除了客户端计算机并重新安装了 Windows 7,结果成功了。很奇怪的是,它以前不起作用,因为他没有代理,没有广告或病毒。并且该问题在他的每个浏览器(chrome firefox 和 IE)中重现。这不是路由器问题。这是一个 Windows 问题,但我无法告诉你到底是什么原因造成的。正如我检查的那样,这也不是互联网安全设置。还检查了主机文件。正如我之前所说,非常令人困惑