Admin Magento 2 halaman web ini memiliki loop pengalihan


26

Magento 2 baru saja dirilis tadi malam dan saya tidak sabar untuk mengerjakannya. Saya mencoba menginstalnya dengan semua prasyarat.

Frontend berfungsi dengan baik tetapi ketika saya mencoba membuka backend dikatakan "halaman web ini memiliki redirect loop". Magento membuat "admin_r2sxkn" sebagai URL backend yang unik. URL Admin saya adalah http: // localhost / magento2 / admin_r2sxkn

Sebagai solusi, saya mencoba menghapus cache yang tidak berfungsi.

PS Saya punya xampp di mac, dengan versi terbaru PHP dan MySql, menginstal ekstensi PHP termasuk yang diperlukan.

Bantuan apa pun akan dihargai.

masukkan deskripsi gambar di sini

Jawaban:


17

Browser tidak mendukung cookie pada domain tingkat atas seperti localhost. Harap instal ulang Magento pada nama host yang berbeda (mis. Magento.dev).

Juga, Magento hanya mendukung Linux. Jadi lebih baik menggunakan Vagrant untuk perkembangan. Anda dapat menggunakan instance gelandangan pra-konfigurasi yang ada yang berfungsi untuk Anda


Magento hanya mendukung Linux?
Bhargav Nanekalva


Ini dapat bekerja pada sistem operasi mirip Linux seperti macOS (banyak orang melakukannya untuk pengembangan; lihat misalnya github.com/weprovide/valet-plus ). Namun, itu tidak didukung secara resmi, sehingga mungkin ada ketidakcocokan yang tidak terduga.
Scott Buchanan

22

Dalam kasus saya, saya mengimpor database Magento 2 yang sudah ada. Alasan saya mendapatkan kesalahan adalah karena domain cookie dalam database. Pergi ke database Anda dan lihat di tabel core_config_data. Anda akan melihat jalan yang disebut web/cookie/cookie_domain. Pastikan domain cocok dengan yang Anda pasang Magento 2. Mis: Jika Anda menginstal Magento 2 di local.dev/<magento-root> entri web/cookie/cookie_domainseharusnya local.dev.


Ini juga masalah saya ...
Giel Berkers

itulah alasan email
Amit Bera

1
pilih * dari core_config_data di mana path seperti "web /%";
david

11

Mengalami masalah pengulangan loop di Magento2 dengan nama domain yang valid setelah beralih ke https.

Periksa web/secure/use_in_adminhtmldan web/secure/use_in_frontendpengaturan core_config_data, keduanya harus diatur ke 1.


Terima kasih Elene, kamu telah menyelamatkan waktu kita. itu berhasil untuk saya. permintaan untuk melihat nilai:select * from core_config_data where path like 'web/%';
Shahzaib Hayat Khan

Inilah yang saya butuhkan. Juga, jika lebih mudah untuk melakukan ini dari baris perintah daripada mengedit catatan dalam database, itu magento config:set web/secure/use_in_adminhtml 1danmagento config:set web/secure/use_in_frontend 1
Colin

9

saat memasang magento2 di localhost Anda, coba gunakan 127.0.0.1 di alamat toko Anda di langkah 3 alih-alih localhost. sekarang yang bisa Anda lakukan adalah mengubah tabel di core_config_data mengikuti 2 baris

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

kosongkan cache dan periksa sekarang

Diedit: -

Saat memasang coba 127.0.0.1 di alamat toko Anda di langkah 3 seperti yang ditunjukkan pada tangkapan layar

masukkan deskripsi gambar di sini


Saya melakukan perubahan yang sama, admin magento2 sekarang bekerja dengan firefox tetapi tidak dengan chrome, saya juga menghapus cache, tetapi tidak ada hasil
Dinesh

5

Saya memiliki domain dari formulir local.abc_def.com dan saya mengalami masalah ini.

Saya mengubah garis bawah dalam domain menjadi tanda hubung, menghasilkan domain local.abc-def.com dan ini memperbaiki masalah bagi saya


4

Dapat didebug di \ Magento \ Backend \ Controller \ Adminhtml \ Auth \ Login :: eksekusi

Misalnya dengan

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

Itu mati dan URL berbeda, ini memberikan petunjuk untuk masalah.


Saya mengalami masalah yang hampir sama dengan OP tetapi memeriksa vars ini hanya menimbulkan pertanyaan lebih lanjut - dua URL tidak pernah cocok, karena kuncinya berbeda pada setiap waktu. Jika saya mencoba memuat URL tanpa kunci (hanya admin/sebagai contoh) itu memeriksa URL terhadap kunci dan mengarahkan ... ke URL lain dengan kunci, yang diperiksa terhadap URL yang kemudian memiliki kunci lain yang berbeda ??
James

Benar, tampaknya ada beberapa bug / kesalahan konfigurasi saat menggunakan URL admin khusus - mengatur ulang ini ke 'admin' di env.php menyelesaikan masalah!
James

2

Cobalah untuk membersihkan folder var / cache. Ini membantu saya.


ini membantu saya sebagai usaha terakhir .. terima kasih @karick
Tanyakan Bytes

0

Saya punya solusi yang lebih baik untuk memperbaiki masalah di atas.

Buka file .htaccess

temukan garis

 #RewriteBase / magento /

Menurut masalah Anda, Batalkan komentar baris sebagai

  RewriteBase / magento2 /  

Catatan-: Simpan file .htaccess Bersihkan semua var / cache dan cache browser.



0

Gunakan localhostsebagai domain tingkat atas yang sebenarnya, bukan mandiri dan Anda harus dapat mengelola ini. Menggunakan .devbukanlah ide yang baik seperti yang dijelaskan dalam artikel ini: https://iyware.com/dont-use-dev-for-development/

http://magento.localhost/akan cocok atau jika Anda memiliki beberapa DOMAIN.comyang akan digunakan untuk nanti, Anda dapat melakukan DOMAIN.localhostyang nanti akan berakhir di DOMAIN.com dan kemudian Anda dapat kode server web Anda untuk mencari nama host terlepas dari TLD yang Anda gunakan.

ex jika Anda memiliki dua toko di DOMAIN1.com dan DOMAIN2.com masukkan aturan Anda di nginx conf (atau apa pun server web pilihan Anda) DOMAIN1.*untuk kode yang mengevaluasi kode spesifik DOMAIN1. Apache Anda mungkin menggunakan sesuatu seperti SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=valdi .htaccessfile Anda .


0

Dalam beberapa skenario menghapus cookie khusus untuk instalasi Magento2 dan menghapus file cache Magento var/cacheakan menyelesaikan masalah ini.


0

Anda harus menghapus var / cache / * dan menjalankan pengaturan: static-content: menyebarkan perintah. itu harusnya bekerja. Saya memecahkan masalah ini di localhost saya dengan langkah di atas


0

Setelah beralih http ke https perlu memperbarui nilai berikut dalam tabel 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';

Kemudian Bersihkan cache dan muat ulang URL admin.


0

Saya sudah menghabiskan 8 jam untuk topik ini, inilah kesimpulan saya

1) mengatur AllowOverride all at apache directory configuration, setidaknya untuk mendapatkan file .htaccess untuk dibaca, pada folder magento adalah solusi universal untuk membuat frontoffice && backoffice berfungsi.

2) atur RewriteBase / in .htaccess atau subfolder jika localhost / magento

3) Pastikan untuk menggunakan https untuk jalur admin jika permintaan tersebut mungkin berguna (jika tidak, cookie admin tidak akan disetel sama sekali):

d = magento.yourdomain.localhost ;

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

mysql -ua -pb -e "PEMBARUAN magento.core_config_data SET nilai = 1 jalur WHERE di (' web / secure / use_in_adminhtml ')"

cache bin / magento php: flush

4) Itu saja, saya telah menghapus semua tebakan yang salah dari posting ini, karena mereka banyak dalam pandangan pertama ..



0

Hal lain yang harus diperhatikan adalah bahwa mesin server web Anda (nginx / apache) mendengarkan pada port SSL 443 dan Anda telah mengkonfigurasi sertifikat. Ini adalah masalah bagi saya bersama dengan saran yang sudah dinyatakan dalam jawaban lain.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.