Quản trị viên Magento 2 trang web này có một vòng lặp chuyển hướng


26

Magento 2 vừa được phát hành tối qua và tôi không thể chờ đợi để làm việc với nó. Tôi đã thử cài đặt nó với tất cả các điều kiện tiên quyết.

Frontend hoạt động tốt nhưng khi tôi cố gắng mở phụ trợ thì nó báo "trang web này có vòng lặp chuyển hướng". Magento đã tạo "admin_r2sxkn" dưới dạng URL phụ trợ duy nhất. URL quản trị của tôi là http: // localhost / magento2 / admin_r2sxkn

Như một giải pháp, tôi đã thử xóa bộ nhớ cache không hoạt động.

PS Tôi có xampp trên mac, với các phiên bản PHP và MySql mới nhất, đã cài đặt tiện ích mở rộng PHP theo yêu cầu.

Bất kỳ trợ giúp sẽ được đánh giá cao.

nhập mô tả hình ảnh ở đây

Câu trả lời:


17

Các trình duyệt không hỗ trợ cookie trên các tên miền cấp cao nhất như localhost. Vui lòng cài đặt lại Magento trên tên máy chủ khác nhau (ví dụ: magento.dev).

Ngoài ra, Magento chỉ hỗ trợ Linux. Vì vậy, tốt hơn để sử dụng Vagrant để phát triển. Bạn có thể sử dụng bất kỳ trường hợp mơ hồ preonfiguret nào tồn tại mà làm tất cả công việc cho bạn


Magento chỉ hỗ trợ Linux?
Bhargav Nanekalva


Nó có thể hoạt động trên các hệ điều hành giống như Linux như macOS (nhiều người làm điều đó để phát triển; xem ví dụ github.com/weprovide/valet-plus ). Tuy nhiên, nó không được hỗ trợ chính thức, do đó có thể có sự không tương thích bất ngờ.
Scott Hội trưởng

22

Trong trường hợp của tôi, tôi đã nhập cơ sở dữ liệu Magento 2 đã có sẵn. Lý do tôi nhận được lỗi là do tên miền cookie trong cơ sở dữ liệu. Đi đến cơ sở dữ liệu của bạn và tìm trong bảng core_config_data. Bạn sẽ thấy một con đường được gọi là web/cookie/cookie_domain. Đảm bảo tên miền khớp với tên miền bạn đã cài đặt Magento 2 trên. Ví dụ: Nếu bạn cài đặt Magento 2 trên local.dev/<magento-root> các mục trong web/cookie/cookie_domainnên local.dev.


Đây cũng là vấn đề của tôi ...
Giel Berkers

đó là lý do thư
Amit Bera

1
chọn * từ core_config_data trong đó đường dẫn như "web /%";
david

11

Đã xảy ra sự cố vòng lặp chuyển hướng trên Magento2 với một tên miền hợp lệ sau khi chuyển sang https.

Kiểm tra web/secure/use_in_adminhtmlweb/secure/use_in_frontendcài đặt core_config_data, cả hai nên được đặt thành 1.


Cảm ơn bạn elene bạn đã cứu địa ngục của chúng tôi một thời gian. nó làm việc cho tôi truy vấn để xem các giá trị:select * from core_config_data where path like 'web/%';
Shahzaib Hayat Khan

Đây chính xác là những gì tôi cần. Ngoài ra, nếu thuận tiện hơn để thực hiện việc này từ dòng lệnh thay vì chỉnh sửa các bản ghi trong cơ sở dữ liệu, thì nó magento config:set web/secure/use_in_adminhtml 1magento config:set web/secure/use_in_frontend 1
Colin

9

trong khi cài đặt magento2 trên localhost của bạn, hãy thử sử dụng 127.0.0.1 trong địa chỉ cửa hàng của bạn ở bước 3 thay vì localhost. bây giờ những gì bạn có thể làm là trong bảng core_config_data thay đổi sau 2 hàng

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

xóa bộ nhớ cache và kiểm tra ngay

Đã chỉnh sửa: -

Trong khi cài đặt, hãy thử 127.0.0.1 trong địa chỉ cửa hàng của bạn ở bước 3 như trong ảnh chụp màn hình

nhập mô tả hình ảnh ở đây


Tôi đã thực hiện các thay đổi tương tự, quản trị viên magento2 hiện đang làm việc với firefox nhưng không phải với chrome, tôi cũng xóa bộ nhớ cache, nhưng không có kết quả
Dinesh

5

Tôi đã có một tên miền của mẫu local.abc_def.com và tôi đã gặp vấn đề này.

Tôi đã thay đổi dấu gạch dưới trong tên miền thành dấu gạch nối, dẫn đến tên miền của local.abc-def.com và điều này đã khắc phục sự cố cho tôi


4

Có thể được gỡ lỗi trong \ Magento \ Backend \ Controller \ adminhtml \ Auth \ Đăng nhập :: thực thi

Ví dụ với

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

Nó là chết và các URL là khác nhau, điều này đưa ra một gợi ý cho vấn đề.


Tôi đang gặp vấn đề gần giống như OP nhưng việc kiểm tra các vars này chỉ đặt ra nhiều câu hỏi hơn - hai URL không bao giờ khớp nhau, bởi vì mỗi lần khóa đều khác nhau. Nếu tôi cố tải một URL mà không có khóa ( admin/chẳng hạn), nó sẽ kiểm tra URL đó bằng một khóa và chuyển hướng ... đến một URL khác bằng một khóa, được kiểm tra đối với một URL có khóa khác?
James

Phải, dường như có một số lỗi / cấu hình sai xung quanh khi sử dụng URL quản trị viên tùy chỉnh - đặt lại điều này thành 'admin' trong env.php đã giải quyết vấn đề!
James

2

Cố gắng làm sạch thư mục var / cache. Nó giúp tôi.


điều này đã giúp tôi như một lần thử cuối cùng .. cảm ơn @karick
Hỏi Bytes

0

Tôi có một giải pháp tốt hơn để khắc phục vấn đề trên.

Mở .htaccess tập tin

tìm dòng

 #RewriteBase / magento /

Theo vấn đề của bạn, Uncomment dòng như

  RewriteBase / magento2 /  

Lưu ý-: Lưu tệp .htaccess Làm sạch tất cả bộ đệm var / cache và trình duyệt.


0

Trước khi cài đặt, Bạn phải chọn một tên miền hợp lệ. Ví dụ: www.magento2-test.devthay vào đó localhost. Thêm chi tiết cho vấn đề này: tại đây


0

Sử dụng localhostnhư một tên miền cấp cao thực tế thay vì độc lập và bạn sẽ có thể quản lý này. Sử dụng .devkhông phải là một ý tưởng tốt như được giải thích trong bài viết này: https://iyware.com/dont-use-dev-for-development/

http://magento.localhost/sẽ phù hợp hoặc nếu bạn có một số DOMAIN.comthứ sẽ được triển khai sau này, bạn có thể làm điều DOMAIN.localhostđó sau này sẽ kết thúc tại DOMAIN.com và sau đó bạn có thể mã hóa máy chủ web của mình để tìm tên máy chủ bất kể bạn sử dụng TLD nào.

ví dụ: nếu bạn có hai cửa hàng tại DOMAIN1.com và DOMAIN2.com, hãy nhập quy tắc của bạn vào nginx conf (hoặc bất cứ máy chủ web nào bạn chọn) như DOMAIN1.*đối với mã đánh giá mã cụ thể DOMAIN1. Apache bạn có thể sử dụng một cái gì đó như SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=valtrong .htaccesstập tin của bạn .


0

Trong một số trường hợp, việc xóa các cookie cụ thể cho cài đặt Magento2 và xóa các tệp bộ nhớ cache Magento var/cachesẽ giải quyết vấn đề này.


0

Bạn nên xóa var / cache / * và chạy setup: static-content: lệnh triển khai. nó nên là công việc Tôi đã giải quyết vấn đề này trên localhost của tôi với bước trên


0

Sau khi chuyển http sang https cần cập nhật các giá trị sau trong bảng 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';

Sau đó, xóa bộ nhớ cache và tải lại URL quản trị viên.


0

Tôi đã dành 8 giờ cho chủ đề này, đây là kết luận của tôi

1) đặt AllowOverride tất cả ở cấu hình thư mục apache, ít nhất là để tệp .htaccess được đọc, trên thư mục magento là giải pháp phổ biến để làm cho frontoffice && backoffice hoạt động

2) đặt RewriteBase / in .htaccess hoặc thư mục con nếu localhost / magento

3) Đảm bảo sử dụng https cho đường dẫn quản trị viên trong trường hợp các yêu cầu đó có thể có ích (nếu không, cookie quản trị sẽ không được đặt ở tất cả):

d = magento.yourdomain.localhost ;

mysql -ua -pb -e "CẬP NHẬT magento.core_config_data SET value = ' https : // $ d /' Đường dẫn WHERE trong ('web / safe / base_url')";

mysql -ua -pb -e "CẬP NHẬT magento.core_config_data SET value = 1 đường dẫn WHERE trong (' web / safe / use_in_adminhtml ')"

Bộ nhớ cache php / magento: tuôn ra

4) Đó là tất cả, tôi đã loại bỏ tất cả những dự đoán sai từ bài đăng này, vì chúng rất nhiều trong cái nhìn đầu tiên ..



0

Một điều khác cần chú ý là công cụ máy chủ web của bạn (nginx / apache) lắng nghe trên cổng SSL 443 và bạn có chứng chỉ được cấu hình. Đây là vấn đề đối với tôi cùng với lời khuyên đã được nêu trong các câu trả lời khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.