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í

Harit
fuente

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

Kandy
fuente
¿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.

Paul
fuente
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.

elena
fuente
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í

Pradeep Sanku
fuente
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

Sean
fuente
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.

Alex
fuente
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
2

Intenta limpiar la carpeta var / cache. Me ayuda.

karick
fuente
esto me ayudó como último intento de vida ... gracias @karick
Pregunte Bytes el
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.

Arvind
fuente
0

Antes de la instalación, debe elegir un nombre de dominio válido. Por ejemplo: en su www.magento2-test.devlugar localhost. Más detalles para este problema: aquí

Андрей Литвиненко
fuente
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.

Joshua Fricke
fuente
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.

Binod - GoFundMonica
fuente
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

Jugal Kishor
fuente
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.

Chatura Dinesh Halwatura
fuente
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 ...

Jack
fuente
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.

askepott
fuente