Magento 2于昨晚发布,我迫不及待地想要工作。我尝试使用所有先决条件进行安装。
前端工作正常,但是当我尝试打开后端时,它说“此网页具有重定向循环”。Magento创建了“ admin_r2sxkn”作为唯一的后端URL。我的管理员URL是http:// localhost / magento2 / admin_r2sxkn
作为解决方案,我尝试删除不起作用的缓存。
PS我在Mac上具有xampp,具有最新版本的PHP和MySql,并根据需要安装了PHP扩展。
任何帮助,将不胜感激。
Magento 2于昨晚发布,我迫不及待地想要工作。我尝试使用所有先决条件进行安装。
前端工作正常,但是当我尝试打开后端时,它说“此网页具有重定向循环”。Magento创建了“ admin_r2sxkn”作为唯一的后端URL。我的管理员URL是http:// localhost / magento2 / admin_r2sxkn
作为解决方案,我尝试删除不起作用的缓存。
PS我在Mac上具有xampp,具有最新版本的PHP和MySql,并根据需要安装了PHP扩展。
任何帮助,将不胜感激。
Answers:
浏览器在诸如localhost之类的顶级域上不支持cookie。请在其他主机名(例如magento.dev)上重新安装Magento。
此外,Magento仅支持Linux。因此最好使用Vagrant进行开发。您可以使用任何现有的preconfiguret流浪者实例来为您完成所有工作
就我而言,我正在导入一个已经存在的Magento 2数据库。我收到错误的原因是由于数据库中的cookie域。转到数据库并查看表core_config_data。您应该看到一个名为的路径web/cookie/cookie_domain。确保该域与您安装了Magento 2的域匹配。例如:如果您在local.dev/<magento-root> 的条目中安装了Magento 2,则web/cookie/cookie_domain应该为local.dev。
切换到https后,使用有效域名在Magento2上发生了重定向循环问题。
选中web/secure/use_in_adminhtml和web/secure/use_in_frontend设置core_config_data,两者都应设置为1。
select * from core_config_data where path like 'web/%';
magento config:set web/secure/use_in_adminhtml 1和magento config:set web/secure/use_in_frontend 1
在本地主机上安装magento2时,请尝试在第3步的商店地址中使用127.0.0.1而不是本地主机。现在你能做的是在core_config_data表中更改以下两行
web/unsecure/base_url to http://127.0.0.1/magento2/
web/secure/base_url to https://127.0.0.1/magento2/
清除缓存并立即检查
编辑:-
如屏幕截图所示,在第3步中的商店地址中尝试安装127.0.0.1时
可以在\ Magento \ Backend \ Controller \ Adminhtml \ Auth \ Login :: execute中进行调试
例如与
$requestUrl = $this->getRequest()->getUri();
$backendUrl = $this->getUrl('*');
// redirect according to rewrite rule
echo (string)$requestUrl . ' != ' . $backendUrl;
die();
它死了,URL也不同,这提示了问题。
admin/例如),它将通过密钥对URL进行检查,然后将...重定向到具有密钥的另一个URL,然后对具有另一个不同密钥的URL进行检查?
在安装之前,您必须选择一个有效的域名。例如:www.magento2-test.dev不是localhost。有关此问题的更多详细信息,请单击此处
使用localhost作为一个实际的顶级域名,而不是独立的,你应该能够管理这一点。.dev如本文所述,使用不是一个好主意:https : //iyware.com/dont-use-dev-for-development/
http://magento.localhost/可能比较合适,或者如果您DOMAIN.com稍后将要部署它,则可以稍后DOMAIN.localhost在DOMAIN.com上进行操作,然后可以对Web服务器进行编码以查找主机名,而不管所使用的TLD如何。
例如,如果您在DOMAIN1.com和DOMAIN2.com上有两家商店,请在nginx conf(或您选择的任何Web服务器)中输入规则,DOMAIN1.*以评估DOMAIN1特定代码的代码。Apache,您可能会SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=val在.htaccess文件中使用类似的内容。
在某些情况下,删除特定于Magento2安装的cookie并清除其中的Magento缓存文件var/cache将解决此问题。
您应该删除var / cache / *并运行setup:static-content:deploy命令。它应该工作。我通过以上步骤在本地主机上解决了此问题
将http切换为https后,需要更新core_config_data表中的以下值。
UPDATE core_config_data SET value = REPLACE(value, '0', '1') WHERE path = 'web/secure/use_in_frontend';
UPDATE core_config_data SET value = REPLACE(value, '0', '1') WHERE path = 'web/secure/use_in_adminhtml';
然后清除缓存并重新加载管理URL。
我已经花了8个小时在这个话题上,这是我的结论
1)设置AllowOverride都在apache目录配置中,至少要读取.htaccess文件,在magento文件夹上是使前台&&后台工作的通用解决方案
2)在.htaccess中设置RewriteBase /或如果localhost / magento则设置一个子文件夹
3)确保将https用作管理路径,以防这些请求变得方便(否则根本不会设置admin cookie):
d = magento.yourdomain.localhost ;
mysql -ua -pb -e“ UPDATE magento.core_config_data SET值=' https:// $ d /'WHERE path in('web / secure / base_url')”;
mysql -ua -pb -e“ UPDATE magento.core_config_data SET value = 1 WHERE path in(' web / secure / use_in_adminhtml ')”
php bin / magento缓存:刷新
4)就是这样,我从这篇文章中删除了所有错误的猜测,因为乍一看它们很多。
如果使用清漆,请不要忘记设置:
RequestHeader set X-Forwarded-Proto "https"
在虚拟主机配置中。我在这里找到它:http : //www.sivaschenko.com/apache-ssl-termination-https-varnish-cache/