Magento 2 admin esta página web tiene un bucle de redireccionamiento


26

Magento 2 acaba de lanzarse anoche y no puedo esperar para trabajar en ello. Intenté instalarlo con todos los requisitos previos.

Frontend funciona bien pero cuando intenté abrir el backend dice "esta página web tiene un bucle de redireccionamiento". Magento creó "admin_r2sxkn" como una URL de back-end única. Mi URL de administrador es http: // localhost / magento2 / admin_r2sxkn

Como solución, intenté eliminar el caché que no funcionó.

PD: Tengo xampp en mac, con las últimas versiones de PHP y MySql, extensión PHP instalada, incluida la requerida.

Cualquier ayuda sería apreciada.

ingrese la descripción de la imagen aquí

Respuestas:


17

Los navegadores no admiten cookies en dominios de nivel superior como localhost. Vuelva a instalar Magento en un nombre de host diferente (por ejemplo, magento.dev).

Además, Magento solo es compatible con Linux. Así que mejor usar Vagrant para el desarrollo. Puede usar cualquier instancia vagabundo preconfigurada que haga todo el trabajo por usted


¿Magento solo es compatible con Linux?
Bhargav Nanekalva


Puede funcionar en sistemas operativos similares a Linux como macOS (muchas personas lo hacen para el desarrollo; consulte, por ejemplo, github.com/weprovide/valet-plus ). Sin embargo, no se admite oficialmente, por lo que podría haber incompatibilidades inesperadas.
Scott Buchanan

22

En mi caso, estaba importando una base de datos Magento 2 ya existente. La razón por la que recibí el error fue por el dominio de cookies en la base de datos. Ve a tu base de datos y busca en la tabla core_config_data. Deberías ver un camino llamado web/cookie/cookie_domain. Asegúrese de que el dominio coincida con el que instaló Magento 2. Ej: Si instaló Magento 2 en local.dev/<magento-root> la entrada web/cookie/cookie_domaindebería estarlo local.dev.


Este también fue mi problema ...
Giel Berkers

esa es la razón del correo
Amit Bera

1
seleccione * de core_config_data donde la ruta como "web /%";
david

11

Tenía un problema de bucle de redireccionamiento en Magento2 con un nombre de dominio válido después de cambiar a https.

Verificar web/secure/use_in_adminhtmlyweb/secure/use_in_frontend configuración core_config_data, ambos deben establecerse en 1.


Gracias elene, salvaste nuestro infierno. Funcionó para mí. consulta para ver los valores:select * from core_config_data where path like 'web/%';
Shahzaib Hayat Khan

Esto era exactamente lo que necesitaba. Además, si es más conveniente hacer esto desde la línea de comandos en lugar de editar registros en la base de datos, es magento config:set web/secure/use_in_adminhtml 1ymagento config:set web/secure/use_in_frontend 1
Colin

9

mientras instala magento2 en su localhost intente usar 127.0.0.1 en la dirección de su tienda en el paso 3 en lugar del localhost. ahora lo que puede hacer es cambiar la tabla core_config_data después de 2 filas

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

borrar caché y verificar ahora

Editado: -

Durante la instalación, intente 127.0.0.1 en la dirección de su tienda en el paso 3 como se muestra en la captura de pantalla

ingrese la descripción de la imagen aquí


Hice los mismos cambios, el administrador de magento2 ahora trabaja con firefox pero no con Chrome, también borro el caché, pero no hay resultado
Dinesh

5

Tenía un dominio de la forma local.abc_def.com y estaba experimentando este problema.

Cambié el guión bajo en el dominio para que fuera un guión, lo que resultó en un dominio de local.abc-def.com y esto me solucionó el problema


4

Se puede depurar en \ Magento \ Backend \ Controller \ Adminhtml \ Auth \ Login :: execute

Por ejemplo con

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

Es muere y las URL son diferentes, esto da una pista del problema.


Tengo casi el mismo problema que el OP, pero al verificar estos vars solo surgen más preguntas: las dos URL nunca coinciden, porque la clave es diferente en cada caso. Si trato de cargar una URL sin una clave (solo admin/por ejemplo), verifica eso con la URL con una clave y redirige ... a otra URL con una clave, que se compara con una URL que luego tiene otra clave diferente.
James

Correcto, parece que hay algún error / configuración incorrecta en torno al uso de una URL de administrador personalizada; restablecer esto a 'admin' en env.php resolvió el problema.
James


0

Tengo una mejor solución para solucionar el problema anterior.

Abra el archivo .htaccess

encuentra la línea

 #RewriteBase / magento /

Según su problema, descomente la línea como

  RewriteBase / magento2 /  

Nota: guarde el archivo .htaccess Limpie todas las var / caché y caché del navegador.



0

Úselo localhostcomo un dominio de nivel superior real en lugar de independiente y debería poder administrar esto. Usar .devno es una buena idea como se explica en este artículo: https://iyware.com/dont-use-dev-for-development/

http://magento.localhost/sería adecuado o si tiene algo DOMAIN.comque se implementará más adelante, puede hacerDOMAIN.localhost que luego terminará en DOMAIN.com y luego puede codificar su servidor web para buscar el nombre de host independientemente del TLD que utilice.

por ejemplo, si tiene dos tiendas en DOMAIN1.com y DOMAIN2.com, ingrese sus reglas en nginx conf (o cualquiera que sea su servidor web de elección) en cuanto DOMAIN1.*al código que evalúa el código específico de DOMAIN1. Apache puede usar algo como SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=valen su .htaccessarchivo.


0

En algunos escenarios, eliminar las cookies específicas de la instalación de Magento2 y borrar los archivos de caché de Magento var/cacheresolverá este problema.


0

Debe eliminar var / cache / * y ejecutar setup: static-content: deploy command. Debería ser trabajo. Resolví este problema en mi host local con el paso anterior


0

Después de cambiar http a https, debe actualizar los siguientes valores en la tabla 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';

Luego, borre las cachés y vuelva a cargar la URL del administrador.


0

He pasado 8 horas en el tema, aquí están mis conclusiones.

1) establezca AllowOverride all en la configuración del directorio apache, al menos para que el archivo .htaccess sea leído, en la carpeta magento es la solución universal para que el frontoffice && backoffice funcione

2) establezca RewriteBase / en .htaccess o una subcarpeta si localhost / magento

3) Asegúrese de usar https para la ruta de administrador en caso de que esas solicitudes sean útiles (de lo contrario, la cookie de administrador no se establecerá):

d = magento.yourdomain.localhost ;

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

mysql -ua -pb -e "ACTUALIZAR magento.core_config_data SET value = 1 WHERE ruta en (' web / secure / use_in_adminhtml ')"

php bin / magento cache: flush

4) Eso es todo, he eliminado todas las suposiciones equivocadas de esta publicación, ya que eran muchas a primera vista ...



0

Otra cosa a tener en cuenta es que el motor de su servidor web (nginx / apache) escucha en el puerto SSL 443 y que tiene certificados configurados. Este fue el problema para mí junto con los consejos ya mencionados en otras respuestas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.