Magento 2 관리자이 웹 페이지에는 리디렉션 루프가 있습니다


26

Magento 2가 방금 지난 밤에 출시되었으므로 작업을 기다릴 수 없습니다. 모든 필수 구성 요소와 함께 설치를 시도했습니다.

프론트 엔드는 정상적으로 작동하지만 백엔드를 열려고하면 "이 웹 페이지에 리디렉션 루프가 있습니다"라고 표시됩니다. Magento는 "admin_r2sxkn"을 고유 한 백엔드 URL로 만들었습니다. 내 관리자 URL은 http : // localhost / magento2 / admin_r2sxkn입니다.

해결책으로 작동하지 않는 캐시를 삭제하려고했습니다.

추신 : 나는 최신 버전의 PHP와 MySql과 함께 Mac에 xampp을 가지고 있으며 필요에 따라 PHP 확장을 설치했습니다.

도움을 주시면 감사하겠습니다.

여기에 이미지 설명을 입력하십시오

답변:


17

브라우저는 localhost와 같은 최상위 도메인에서 쿠키를 지원하지 않습니다. 다른 호스트 이름 (예 : magento.dev)에 Magento를 다시 설치하십시오.

또한 Magento는 Linux 만 지원합니다. 개발에 Vagrant 를 사용하는 것이 좋습니다 . 모든 작업을 수행 하는 사전 구성된 방랑 인스턴스 를 사용할 수 있습니다.


Magento는 Linux 만 지원합니까?
Bhargav Nanekalva


macOS와 같은 Linux와 같은 운영 체제에서 작동 할 수 있습니다 (많은 사람들이 개발을 위해 수행합니다 (예 : github.com/weprovide/valet-plus 참조 )). 그러나 공식적으로 지원되지 않으므로 예기치 않은 비 호환성이있을 수 있습니다.
스콧 뷰캐넌

22

필자의 경우 기존 Magento 2 데이터베이스를 가져오고있었습니다. 내가 오류를 얻은 이유는 데이터베이스의 쿠키 도메인 때문이었습니다. 데이터베이스로 이동하여 테이블을보십시오 core_config_data. 이라는 경로가 표시되어야합니다 web/cookie/cookie_domain. 도메인이 Magento 2를 설치 한 도메인과 일치하는지 확인하십시오. 예 : Magento 2를 설치 한 경우의 local.dev/<magento-root>web/cookie/cookie_domain있어야합니다 local.dev.


이것은 나의 문제이기도했다.
Giel Berkers

그것은 메일 이유입니다
Amit Bera

1
"web / %"와 같은 경로에서 core_config_data에서 *를 선택하십시오.
david

11

https로 전환 한 후 유효한 도메인 이름으로 Magento2에서 경로 재 지정 루프 문제가 발생했습니다.

에서 설정을 확인 web/secure/use_in_adminhtml하고 둘 다로 설정해야합니다 .web/secure/use_in_frontendcore_config_data1


시간을 절약 해 준 엘레 네 감사합니다. 그것은 나를 위해 일했다. 값을 볼 수있는 쿼리 :select * from core_config_data where path like 'web/%';
Shahzaib Hayat 칸

이것이 바로 내가 필요한 것입니다. 또한 데이터베이스에서 레코드를 편집하는 대신 명령 행에서이 작업을 수행하는 것이 더 편리한 경우에는 다음 magento config:set web/secure/use_in_adminhtml 1과 같습니다.magento config:set web/secure/use_in_frontend 1
Colin

9

로컬 호스트에 magento2를 설치하는 동안 로컬 호스트 대신 3 단계에서 상점 주소에 127.0.0.1을 사용하십시오. 이제 할 수있는 일은 core_config_data 테이블에서 2 행 다음에 변경됩니다.

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

캐시를 지우고 지금 확인하십시오

편집 :-

스크린 샷과 같이 3 단계에서 상점 주소에 127.0.0.1을 설치하는 동안

여기에 이미지 설명을 입력하십시오


나는 같은 변경을했다. magento2 관리자는 이제 파이어 폭스를 사용하지만 크롬은 사용하지 않는다. 캐시도 지우지 만 결과는 없다
Dinesh

5

local.abc_def.com 형식의 도메인이 있는데이 문제가 발생했습니다.

도메인의 밑줄을 하이픈으로 변경하여 local.abc-def.com의 도메인을 만들었고 문제가 해결되었습니다.


4

\ Magento \ Backend \ Controller \ Adminhtml \ Auth \ Login :: execute에서 디버깅 할 수 있습니다.

예를 들어

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

죽었고 URL이 다르기 때문에 문제에 대한 힌트를 제공합니다.


OP와 거의 동일한 문제가 있지만 이러한 변수를 확인하면 추가 질문이 발생합니다. 매번 키가 다르기 때문에 두 URL이 일치하지 않습니다. 키없이 URL을로드하려고하면 ( admin/예를 들어) 키가있는 URL을 확인하고 키가있는 다른 URL로 리디렉션합니다. 키가있는 다른 URL로 리디렉션됩니다.이 키는 다른 키가 있습니까?
James

맞습니다. 맞춤형 관리 URL을 사용하여 버그 / 잘못 구성 된 것으로 보입니다. env.php에서이를 'admin'으로 재설정하면 문제가 해결되었습니다!
James

2

var / cache 폴더를 정리하십시오. 도움이됩니다.


이것은 마지막 인생 시도로 나를 도와 주었다. 감사 @karick
Ask Bytes

0

위의 문제를 해결하는 더 나은 솔루션이 있습니다.

열기 htaccess로 파일을

줄을 찾아

 #RewriteBase / magento /

문제에 따라 다음과 같이 줄의 주석을 해제하십시오

  RewriteBase / magento2 /  

참고 :: .htaccess 파일 저장 모든 var / cache 및 브라우저 캐시를 정리하십시오.



0

사용 localhost하는 대신 독립의 실제 최상위 도메인으로 당신은이를 관리 할 수 있어야한다. https://iyware.com/dont-use-dev-for-development/에.dev 설명 된대로 사용하는 것은 좋지 않습니다.

http://magento.localhost/적합하거나 DOMAIN.com나중에 배포 할 일부 가 DOMAIN.localhost있는 경우 나중에 DOMAIN.com에서 종료 할 수 있으며 사용하는 TLD에 관계없이 웹 서버를 호스트 이름을 찾도록 코딩 할 수 있습니다.

예를 들어 DOMAIN1.com과 DOMAIN2.com에 두 개의 상점이있는 경우 DOMAIN1.*DOMAIN1 특정 코드를 평가하는 코드에 대해 nginx conf (또는 선택한 웹 서버)에 규칙을 입력하십시오 . 아파치 파일 과 같은 것을 사용할 SetEnvIf Host DOMAIN1\.(localhost|com)$ VAR=val.htaccess있습니다.


0

일부 시나리오에서는 Magento2 설치와 관련된 쿠키를 삭제하고 Magento 캐시 파일을 지우면 var/cache이 문제가 해결됩니다.


0

var / cache / *를 삭제하고 setup : static-content : deploy 명령을 실행해야합니다. 작동해야합니다. 위의 단계로 로컬 호스트 에서이 문제를 해결했습니다.


0

http를 https로 전환 한 후 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';

그런 다음 캐시를 지우고 관리 URL을 다시로드하십시오.


0

나는 주제에 대해 8 시간을 보냈습니다. 여기에 내 결론이 있습니다.

1) 아파치 디렉토리 구성에서 AllowOverride를 모두 설정하십시오 . 적어도 .htaccess 파일을 읽으려면 magento 폴더에서 프론트 오피스 및 백 오피스를 작동시키는 보편적 인 솔루션입니다

2) localhost / magento 인 경우 RewriteBase / in .htaccess 또는 하위 폴더 설정

3) 이러한 요청이 유용 할 수있는 경우를 대비하여 관리 경로에 https를 사용해야합니다 (그렇지 않으면 관리자 쿠키가 전혀 설정되지 않음).

d = magento.yourdomain.localhost ;

mysql -ua -pb -e "UPDATE magento.core_config_data SET 값 = ' https : // $ d /'경로 ((web / secure / base_url ')의 경로)";

mysql -ua -pb -e "업데이트 magento.core_config_data SET 값 = 1 어디에 경로 ( ' web / secure / use_in_adminhtml ')"

PHP 빈 / 마 젠토 캐시 : 플러시

4) 그게 전부입니다. 나는 그들이 한 눈에 많이 보았 기 때문에이 게시물에서 모든 잘못된 추측을 제거했습니다 ..



0

주의해야 할 또 다른 사항은 웹 서버 엔진 (nginx / apache)이 SSL 포트 443에서 수신 대기하고 인증서가 구성되어 있다는 것입니다. 이것은 이미 다른 답변에 언급 된 조언과 함께 문제였습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.