Administrateur de Magento 2 cette page Web a une boucle de redirection

26

Magento 2 vient de sortir hier soir et j'ai hâte de travailler dessus. J'ai essayé de l'installer avec toutes les conditions préalables.

Le frontend fonctionne bien mais quand j'ai essayé d'ouvrir le backend, il dit "cette page Web a une boucle de redirection". Magento a créé "admin_r2sxkn" comme URL backend unique. Mon URL d'administration est http: // localhost / magento2 / admin_r2sxkn

Comme solution, j'ai essayé de supprimer le cache qui ne fonctionnait pas.

PS J'ai xampp sur mac, avec les dernières versions de PHP et MySql, installé l'extension PHP inclue au besoin.

Toute aide serait appréciée.

entrez la description de l'image ici

Harit
la source

Réponses:

17

Les navigateurs ne prennent pas en charge les cookies sur les domaines de premier niveau comme localhost. Veuillez réinstaller Magento sur un nom d'hôte différent (ex. Magento.dev).

De plus, Magento ne prend en charge que Linux. Il vaut donc mieux utiliser Vagrant pour le développement. Vous pouvez utiliser n'importe quelle instance vagabonde préconfigurée existante qui fait tout le travail pour vous

KAndy
la source
Magento ne prend en charge que Linux?
Bhargav Nanekalva
Il peut fonctionner sur des systèmes d'exploitation de type Linux comme macOS (beaucoup de gens le font pour le développement; voir par exemple github.com/weprovide/valet-plus ). Il n'est pas officiellement pris en charge, cependant, il pourrait y avoir des incompatibilités inattendues.
Scott Buchanan
22

Dans mon cas, j'importais une base de données Magento 2 déjà existante. La raison pour laquelle j'obtenais l'erreur était à cause du domaine de cookie dans la base de données. Accédez à votre base de données et regardez dans le tableau core_config_data. Vous devriez voir un chemin appelé web/cookie/cookie_domain. Assurez-vous que le domaine correspond à celui sur lequel vous avez installé Magento 2. Ex: Si vous avez installé Magento 2 sur local.dev/<magento-root> l'entrée en web/cookie/cookie_domaindevrait être local.dev.

Paul
la source
C'était aussi mon problème ...
Giel Berkers
c'est la raison du courrier
Amit Bera
1
sélectionnez * dans core_config_data où chemin comme "web /%";
david
11

A eu un problème de boucle de redirection sur Magento2 avec un nom de domaine valide après le passage à https.

Vérifiez web/secure/use_in_adminhtmlet web/secure/use_in_frontendparamétrez core_config_data, ils doivent tous deux être définis sur 1.

elena
la source
Merci Elene, tu as sauvé notre enfer d'un temps. ça a marché pour moi. requête pour voir les valeurs:select * from core_config_data where path like 'web/%';
Shahzaib Hayat Khan
C'était exactement ce dont j'avais besoin. De plus, s'il est plus pratique de le faire à partir de la ligne de commande plutôt que de modifier des enregistrements dans la base de données, c'est magento config:set web/secure/use_in_adminhtml 1etmagento config:set web/secure/use_in_frontend 1
Colin
9

lors de l'installation de magento2 sur votre hôte local, essayez d'utiliser 127.0.0.1 dans l'adresse de votre magasin à l'étape 3 au lieu de l'hôte local. maintenant, que pouvez-vous faire est dans le changement de table core_config_data suivant 2 lignes

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

vider le cache et vérifier maintenant

Édité:-

Lors de l'installation, essayez 127.0.0.1 dans l'adresse de votre boutique à l'étape 3, comme indiqué dans la capture d'écran

entrez la description de l'image ici

Pradeep Sanku
la source
J'ai fait les mêmes changements, l'administrateur magento2 fonctionne maintenant avec Firefox mais pas avec Chrome, j'efface également le cache, mais aucun résultat
Dinesh
5

J'avais un domaine de la forme local.abc_def.com et je rencontrais ce problème.

J'ai changé le trait de soulignement dans le domaine pour qu'il soit un trait d'union, résultant en un domaine de local.abc-def.com et cela a résolu le problème pour moi

Sean
la source
4

Peut être débogué dans \ Magento \ Backend \ Controller \ Adminhtml \ Auth \ Login :: execute

Par exemple avec

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

Il meurt et les URL sont différentes, cela donne un indice au problème.

Alex
la source
J'ai presque le même problème que l'OP, mais la vérification de ces vars soulève simplement d'autres questions - les deux URL ne correspondent jamais, car la clé est différente à chaque fois. Si j'essaie de charger une URL sans clé (juste admin/par exemple), il vérifie cela par rapport à l'URL avec une clé et redirige ... vers une autre URL avec une clé, qui est vérifiée par rapport à une URL qui a alors une autre clé différente ??
James
À droite, il semble y avoir un bug / une mauvaise configuration autour de l'utilisation d'une URL d'administration personnalisée - la réinitialisation de «admin» dans env.php a résolu le problème!
James
2

Essayez de nettoyer le dossier var / cache. Ça m'aide.

karick
la source
cela m'a aidé comme un dernier essai de vie .. merci @karick
Ask Bytes
0

J'ai une meilleure solution pour résoudre le problème ci-dessus.

Ouvrez le fichier .htaccess

trouver la ligne

 #RewriteBase / magento /

Selon votre problème, décommentez la ligne comme

  RewriteBase / magento2 /  

Remarque-: Enregistrez le fichier .htaccess Nettoyez tous les var / cache et cache du navigateur.

Arvind
la source
0

Avant l'installation, vous devez choisir un nom de domaine valide. Par exemple: à la www.magento2-test.devplace localhost. Plus de détails sur ce numéro: ici

Андрей Литвиненко
la source
0

Utilisez-le localhostcomme un domaine de premier niveau réel plutôt que autonome et vous devriez être en mesure de gérer cela. L'utilisation .devn'est pas une bonne idée comme expliqué dans cet article: https://iyware.com/dont-use-dev-for-development/

http://magento.localhost/serait approprié ou si vous en avez DOMAIN.comqui seront déployés plus tard, vous pouvez le faire DOMAIN.localhostqui se terminera plus tard sur DOMAIN.com, puis vous pouvez coder votre serveur Web pour rechercher le nom d'hôte quel que soit le TLD que vous utilisez.

ex. si vous avez deux magasins sur DOMAIN1.com et DOMAIN2.com entrez vos règles dans nginx conf (ou quel que soit votre serveur Web de choix) comme DOMAIN1.*pour le code évaluant le code spécifique de DOMAIN1. Apache, vous pourriez utiliser quelque chose comme SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=valdans votre .htaccessfichier.

Joshua Fricke
la source
0

Dans certains scénarios, la suppression des cookies spécifiques à l'installation de Magento2 et la suppression des fichiers de cache Magento dans var/cacherésoudront ce problème.

Binod - GoFundMonica
la source
0

Vous devez supprimer var / cache / * et exécuter la commande setup: static-content: deploy. ça devrait être du travail. J'ai résolu ce problème sur mon hôte local avec l'étape ci-dessus

Jugal Kishor
la source
0

Après avoir basculé http vers https, vous devez mettre à jour les valeurs suivantes dans la table 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';

Ensuite, effacez les caches et rechargez l'URL d'administration.

Chatura Dinesh Halwatura
la source
0

J'ai passé 8 heures sur le sujet, voici mes conclusions

1) définir AllowOverride all lors de la configuration du répertoire apache, au moins pour que le fichier .htaccess soit lu, sur le dossier magento est la solution universelle pour faire fonctionner le frontoffice && backoffice

2) définissez RewriteBase / in .htaccess ou un sous-dossier si localhost / magento

3) Assurez-vous d'utiliser https pour le chemin d'administration au cas où ces demandes pourraient s'avérer utiles (sinon le cookie d'administration ne sera pas défini du tout):

d = magento.votredomaine.localhost ;

mysql -ua -pb -e "MISE À JOUR magento.core_config_data SET value = ' https : // $ d /' WHERE path in ('web / secure / base_url')";

mysql -ua -pb -e "MISE À JOUR magento.core_config_data SET value = 1 WHERE path in (' web / secure / use_in_adminhtml ')"

cache php bin / magento: vidage

4) C'est tout, j'ai supprimé toutes les mauvaises suppositions de ce post, car elles étaient beaucoup au premier coup d'œil ..

Jack
la source
0

Une autre chose à surveiller est que votre moteur de serveur Web (nginx / apache) écoute sur le port SSL 443 et que vous avez configuré des certificats. C'était le problème pour moi avec les conseils déjà énoncés dans d'autres réponses.

askepott
la source