Magento 2 admin Esta página possui um loop de redirecionamento


26

O Magento 2 acabou de ser lançado ontem à noite e mal posso esperar para trabalhar nele. Tentei instalá-lo com todos os pré-requisitos.

O frontend funciona bem, mas quando tentei abrir o backend, ele diz "esta página da web tem um loop de redirecionamento". O Magento criou "admin_r2sxkn" como um URL de back-end exclusivo. Meu URL de administrador é http: // localhost / magento2 / admin_r2sxkn

Como solução, tentei excluir o cache que não funcionava.

PS: Eu tenho o xampp no ​​mac, com as versões mais recentes do PHP e MySql, instalando a extensão PHP incl.

Qualquer ajuda seria apreciada.

insira a descrição da imagem aqui

Respostas:


17

Os navegadores não suportam cookies em domínios de nível superior, como localhost. Por favor, reinstale o Magento em outro nome de host (ex. Magento.dev).

Além disso, o Magento suporta apenas Linux. Então é melhor usar o Vagrant para desenvolvimento. Você pode usar qualquer instância vagrant pré-configurada existente que faça todo o trabalho para você


Magento suporta apenas Linux?
Bhargav Nanekalva


Pode funcionar em sistemas operacionais semelhantes ao Linux como o macOS (muitas pessoas fazem isso para desenvolvimento; veja, por exemplo, github.com/weprovide/valet-plus ). No entanto, não é oficialmente suportado, portanto, pode haver incompatibilidades inesperadas.
22818 Scott Schanan

22

No meu caso, eu estava importando um banco de dados Magento 2 já existente. O motivo pelo qual eu estava recebendo o erro era por causa do domínio de cookie no banco de dados. Vá para o seu banco de dados e consulte a tabela core_config_data. Você deve ver um caminho chamado web/cookie/cookie_domain. Verifique se o domínio corresponde àquele em que você instalou o Magento 2. Ex: Se você instalou o Magento 2 na local.dev/<magento-root> entrada, web/cookie/cookie_domaindeve ser local.dev.


Esta foi a minha questão, bem ...
Giel Berkers

esse é o motivo do correio
Amit Bera

11
selecione * em core_config_data onde o caminho é "web /%";
david

11

Tinha problema de loop de redirecionamento no Magento2 com um nome de domínio válido depois de mudar para https.

Check web/secure/use_in_adminhtmle web/secure/use_in_frontendconfigurações core_config_data, ambos devem estar em 1.


Obrigado, Elene, você salvou nosso inferno de um tempo. funcionou para mim. consulta para ver valores:select * from core_config_data where path like 'web/%';
Shahzaib Hayat Khan 17/02

Era exatamente disso que eu precisava. Além disso, se é mais conveniente fazer isso na linha de comando, em vez de editar registros no banco de dados, é magento config:set web/secure/use_in_adminhtml 1emagento config:set web/secure/use_in_frontend 1
Colin

9

enquanto instala o magento2 no seu host local, tente usar 127.0.0.1 no endereço da sua loja na etapa 3 em vez do host local. Agora, o que você pode fazer é alterar a tabela core_config_data após 2 linhas

web/unsecure/base_url to http://127.0.0.1/magento2/
web/secure/base_url to https://127.0.0.1/magento2/

limpe o cache e verifique agora

Editado:-

Durante a instalação, tente 127.0.0.1 no endereço da sua loja na etapa 3, conforme mostrado na captura de tela

insira a descrição da imagem aqui


Fiz as mesmas alterações, magento2 administração trabalhando agora com firefox, mas não com o Chrome, eu também limpar o cache, mas nenhum resultado
Dinesh

5

Eu tinha um domínio no formato local.abc_def.com e estava com esse problema.

Alterei o sublinhado no domínio para ser um hífen, resultando em um domínio local.abc-def.com e isso corrigiu o problema para mim


4

Pode ser depurado em \ Magento \ Backend \ Controller \ Adminhtml \ Auth \ Login :: execute

Por exemplo, com

    $requestUrl = $this->getRequest()->getUri();
    $backendUrl = $this->getUrl('*');
    // redirect according to rewrite rule
    echo (string)$requestUrl . ' != ' . $backendUrl;
    die();

É morre e os URLs são diferentes, isso dá uma dica para o problema.


Estou tendo quase o mesmo problema que o OP, mas verificar esses vars apenas levanta mais perguntas - os dois URLs nunca correspondem, porque a chave é diferente em cada um deles. Se eu tentar carregar um URL sem uma chave (apenas admin/por exemplo), ele verifica isso contra o URL com uma chave e redireciona ... para outro URL com uma chave, que é verificado contra um URL que então tem outra chave diferente?
James

Certo, parece haver algum erro / configuração incorreta ao usar um URL de administrador personalizado - redefinir para 'admin' no env.php resolveu o problema!
James

2

Tente limpar a pasta var / cache. Isso me ajuda.


isso me ajudou como uma última tentativa de vida .. obrigado @karick
Ask Bytes

0

Eu tenho uma solução melhor para corrigir o problema acima.

Abra o arquivo .htaccess

encontre a linha

 #RewriteBase / magento /

De acordo com o seu problema, remova o comentário da linha como

  RewriteBase / magento2 /  

Nota-: salve o arquivo .htaccess Limpe todo o var / cache e cache do navegador.



0

Use localhostcomo um domínio de nível superior real em vez de autônomo e você poderá gerenciar isso. Usar .devnão é uma boa ideia, conforme explicado neste artigo: https://iyware.com/dont-use-dev-for-development/

http://magento.localhost/seria adequado ou, se você tiver alguns itens DOMAIN.comque serão implantados posteriormente, você poderá fazer o DOMAIN.localhostque mais tarde terminará em DOMAIN.com e, em seguida, poderá codificar seu servidor da web para procurar o nome do host, independentemente do TLD usado.

ex, se você tiver duas lojas em DOMAIN1.com e DOMAIN2.com, insira suas regras no nginx conf (ou qualquer que seja o servidor da sua escolha) quanto DOMAIN1.*ao código para avaliar o código específico do DOMAIN1. Apache, você pode usar algo como SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=valno seu .htaccessarquivo.


0

Em alguns cenários, excluir os cookies específicos da instalação do Magento2 e limpar os arquivos de cache do Magento var/cacheresolverá esse problema.


0

Você deve excluir var / cache / * e executar o comando setup: static-content: deploy. deveria ser trabalho. Resolvi esse problema no meu host local com a etapa acima


0

Depois de mudar o http para https, é necessário atualizar os seguintes valores na tabela 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';

Em seguida, limpe os caches e recarregue o URL do administrador.


0

Passei 8 horas no tópico, aqui estão minhas conclusões

1) defina AllowOverride all na configuração do diretório apache, pelo menos para que o arquivo .htaccess seja lido, na pasta magento é a solução universal para que o frontoffice && backoffice funcione

2) defina RewriteBase / em .htaccess ou uma subpasta se localhost / magento

3) Certifique-se de usar https para o caminho do administrador, caso essas solicitações sejam úteis (caso contrário, o cookie do administrador não será definido):

d = magento.seudominio.localhost ;

mysql -ua -pb -e "UPDATE magento.core_config_data SET value = ' https : // $ d /' WHERE caminho em ('web / secure / base_url')";

mysql -ua -pb -e "UPDATE magento.core_config_data SET value = 1 WHERE caminho em (' web / secure / use_in_adminhtml ')"

php bin / cache magento: flush

4) Isso é tudo, eu removi todo palpite errado deste post, pois eles eram muito à primeira vista ..



0

Outra coisa a se observar é que o mecanismo do servidor da web (nginx / apache) escuta na porta SSL 443 e que você possui certificados configurados. Esse foi o problema para mim, juntamente com o conselho já indicado em outras respostas.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.