Magento 2 admin questa pagina web ha un ciclo di reindirizzamento


26

Magento 2 è appena uscito ieri sera e non vedo l'ora di lavorarci su. Ho provato a installarlo con tutti i prerequisiti.

Il frontend funziona bene, ma quando ho provato ad aprire il backend mi dice "questa pagina web ha un ciclo di reindirizzamento". Magento ha creato "admin_r2sxkn" come un unico URL back-end. Il mio URL di amministrazione è http: // localhost / magento2 / admin_r2sxkn

Come soluzione, ho provato a eliminare la cache che non funzionava.

PS Ho xampp su mac, con le ultime versioni di PHP e MySql, estensione PHP installata incl.

Qualsiasi aiuto sarebbe apprezzato.

inserisci qui la descrizione dell'immagine

Risposte:


17

I browser non supportano i cookie su domini di primo livello come localhost. Reinstallare Magento su un altro nome host (ad es. Magento.dev).

Inoltre, Magento supporta solo Linux. Quindi meglio usare Vagrant per lo sviluppo. Puoi usare qualsiasi istanza di vagabondo preconfigurata esistente che funzioni per te


Magento supporta solo Linux?
Bhargav Nanekalva,


Può funzionare su sistemi operativi simili a Linux come macOS (molte persone lo fanno per lo sviluppo; vedere ad esempio github.com/weprovide/valet-plus ). Non è supportato ufficialmente, tuttavia, quindi potrebbero esserci incompatibilità impreviste.
Scott Buchanan,

22

Nel mio caso, stavo importando un database Magento 2 già esistente. Il motivo per cui stavo ottenendo l'errore era a causa del dominio dei cookie nel database. Vai al tuo database e cerca nella tabella core_config_data. Dovresti vedere un percorso chiamato web/cookie/cookie_domain. Assicurati che il dominio corrisponda a quello su cui hai installato Magento 2. Es: se Magento 2 è stato installato sulla local.dev/<magento-root> voce web/cookie/cookie_domaindovrebbe essere local.dev.


Anche questo era il mio problema ...
Giel Berkers,

questo è il motivo della posta
Amit Bera

1
seleziona * da core_config_data dove percorso come "web /%";
david

11

Si è verificato un problema di reindirizzamento su Magento2 con un nome di dominio valido dopo il passaggio a https.

Check web/secure/use_in_adminhtmle web/secure/use_in_frontendimpostazioni in core_config_data, entrambi dovrebbero essere impostati su 1.


Grazie elene hai salvato il nostro inferno di tempo. ha funzionato per me. query per vedere i valori:select * from core_config_data where path like 'web/%';
Shahzaib Hayat Khan,

Questo era esattamente ciò di cui avevo bisogno. Inoltre, se è più conveniente farlo dalla riga di comando piuttosto che modificare i record nel database, è magento config:set web/secure/use_in_adminhtml 1emagento config:set web/secure/use_in_frontend 1
Colin

9

durante l'installazione di magento2 sul tuo localhost, prova a utilizzare 127.0.0.1 nell'indirizzo del tuo negozio al punto 3 anziché localhost. ora cosa puoi fare è cambiare la tabella core_config_data seguendo 2 righe

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

svuota la cache e controlla ora

Modificato:-

Durante l'installazione, prova 127.0.0.1 nell'indirizzo del tuo negozio nel passaggio 3, come mostrato nella schermata

inserisci qui la descrizione dell'immagine


Ho fatto le stesse modifiche, ora l'amministratore di magento2 funziona con Firefox ma non con Chrome, pulisco anche la cache, ma nessun risultato
Dinesh,

5

Avevo un dominio nel modulo local.abc_def.com e ho riscontrato questo problema.

Ho cambiato il carattere di sottolineatura nel dominio in un trattino, risultando in un dominio local.abc-def.com e questo ha risolto il problema per me


4

Può essere eseguito il debug in \ Magento \ Backend \ Controller \ Adminhtml \ Auth \ Login :: execute

Ad esempio con

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

È morto e gli URL sono diversi, questo dà un suggerimento al problema.


Sto riscontrando quasi lo stesso problema dell'OP, ma il controllo di questi parametri solleva solo ulteriori domande: i due URL non corrispondono mai, perché la chiave è diversa su ogni, ogni volta. Se provo a caricare un URL senza una chiave (solo admin/per esempio), lo verifica rispetto all'URL con una chiave e reindirizza ... a un altro URL con una chiave, che viene verificato rispetto a un URL che quindi ha un'altra chiave diversa ??
James,

Bene, sembra esserci qualche bug / errata configurazione attorno all'uso di un URL di amministrazione personalizzato: reimpostarlo su "admin" in env.php ha risolto il problema!
James,


0

Ho una soluzione migliore per risolvere il problema sopra.

Apri il file .htaccess

trova la linea

 #RewriteBase / magento /

In base al problema, rimuovere il commento come

  RewriteBase / magento2 /  

Nota: salvare il file .htaccess Pulire tutta la var / cache e la cache del browser.


0

Prima dell'installazione, è necessario scegliere un nome di dominio valido. Ad esempio: www.magento2-test.devinvece localhost. Maggiori dettagli per questo problema: qui


0

Utilizzare localhostcome un dominio di livello superiore effettivo anziché autonomo e si dovrebbe essere in grado di gestirlo. L'uso .devnon è una buona idea come spiegato in questo articolo: https://iyware.com/dont-use-dev-for-development/

http://magento.localhost/sarebbe adatto o se ne hai alcuni DOMAIN.comche verranno distribuiti in un secondo momento, puoi farlo DOMAIN.localhostche in seguito finirà su DOMAIN.com e quindi puoi codificare il tuo server web per cercare il nome host indipendentemente dal TLD che usi.

ad esempio se hai due negozi su DOMAIN1.com e DOMAIN2.com inserisci le tue regole in nginx conf (o qualunque sia il tuo server Web preferito) come DOMAIN1.*per la valutazione del codice specifico per DOMAIN1. Apache potresti usare qualcosa di simile SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=valnel tuo .htaccessfile.


0

In alcuni scenari, l'eliminazione dei cookie specifici dell'installazione di Magento2 e la cancellazione dei file della cache di Magento var/cacherisolveranno questo problema.


0

Dovresti cancellare var / cache / * ed eseguire setup: static-content: deploy command. dovrebbe essere lavoro. Ho risolto questo problema sul mio localhost con il passaggio precedente


0

Dopo aver cambiato http in https è necessario aggiornare i seguenti valori nella tabella 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';

Quindi cancellare le cache e ricaricare l'URL dell'amministratore.


0

Ho trascorso 8 ore sull'argomento, ecco le mie conclusioni

1) imposta AllowOverride all alla configurazione della directory apache, almeno per ottenere il file .htaccess da leggere, nella cartella magento è la soluzione universale per far funzionare frontoffice && backoffice

2) impostare RewriteBase / in .htaccess o una sottocartella se localhost / magento

3) Assicurati di utilizzare https per il percorso dell'amministratore nel caso in cui tali richieste risultino utili (altrimenti il ​​cookie dell'amministratore non verrà impostato):

d = magento.yourdomain.localhost ;

mysql -ua -pb -e "AGGIORNAMENTO magento.core_config_data SET valore = ' https : // $ d /' percorso WHERE in ('web / secure / base_url')";

mysql -ua -pb -e "AGGIORNAMENTO magento.core_config_data SET valore = 1 percorso WHERE in (' web / secure / use_in_adminhtml ')"

php bin / magento cache: flush

4) Questo è tutto, ho rimosso tutte le ipotesi sbagliate da questo post, dato che erano molte a prima vista ..



0

Un'altra cosa da tenere in considerazione è che il motore del tuo server web (nginx / apache) è in ascolto sulla porta SSL 443 e che hai i certificati configurati. Questo è stato il problema per me insieme ai consigli già indicati in altre risposte.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.