2016-08-13 2 views
1

최근에 내 도메인을 https으로 리디렉션하기 시작했으며 Safari에서 특히 모바일에서 "너무 많은 리디렉션"오류가 발생합니다. 모든 컴퓨터와 다른 브라우저에서 모든 것이 잘 작동합니다.Https가 Safari에서 너무 많은 리디렉션을 야기 함

다음은 리디렉션을 완료 한 방법입니다. 내 SSL 문제를 일으키는 내가 DNS 전파 몇 가지 문제를 해결하기 때문에 나는 또한 Cloudflare을 사용할

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] 
RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\. [NC] 
RewriteRule^https://example\.com%{REQUEST_URI} [R=301,L,NE] 

주요 도메인에 대한

.

편집 :

그것은 컴퓨터를 제외한 모든 사파리 브라우저에 영향을 미치고 캐시를 삭제하면 문제가 해결되지 않습니다. 도메인이 하나 뿐이며 하위 도메인이 몇 개 있습니다.

나는 htaccess로 다른 지침을 수행

RewriteCond %{HTTP_HOST} ^example.com$ [OR] 
RewriteCond %{HTTP_HOST} ^example.com$ 
RewriteRule ^folder\/?(.*)$ "http\:\/\/example\.com\/all\-categories\/folder\/$1" [R=301,L] 

편집이 :

변경 호스트가 나를 위해이 문제를 해결 해결했다.

+0

이 문제는 한 컴퓨터에서만 (?) 하나의 브라우저에만 영향을주는 경우 클라이언트 쪽 캐싱 문제를 강력하게 암시합니다. .htaccess에서 지시문에 문제가있는 경우 _all_ 컴퓨터의 _all_ 브라우저에 영향을줍니다. 여러 도메인이 있습니까? .htaccess 파일에 다른 지시문이 있습니까? – MrWhite

답변

0
RewriteRule ^folder\/?(.*)$ "http\:\/\/example\.com\/all\-categories\/folder\/$1" [R=301,L] 

당신이https모든 리디렉션하고 있기 때문에, 당신은 또한 위의 리디렉션에이 일을해야한다. 그렇지 않으면 추가 (불필요한) 리디렉션으로 끝날 것입니다. 나는 또한 정규식과 대체까지 정돈 한

RewriteRule ^folder/?(.*) https://example.com/all-categories/folder/$1 [R=301,L] 

: 그래서 이것은 다시 작성해야 (이의 cPanel 생성 무언가 모양을?). RewriteRule대체에 모든 백 슬래시 이스케이프 (및 큰 따옴표)가 필요하지 않습니다. 그리고 RewriteRule패턴의 백 슬래시 이스케이프도 불필요합니다.

그러나이 혼자만으로 Safari (모바일)를 만족시킬 수 있는지 의심 스럽습니다. (?)

+1

의견에 감사드립니다. 최근에 내 웹 사이트가 너무 자주 다운 되었기 때문에 웹 호스트를 변경하기로 결정 했으므로 곧이 솔루션을 사용해 보겠습니다. – PatL

+0

새 호스트에서 행운이 있습니까? – MrWhite

+1

모든 것이 새로운 호스트에서 잘 작동하지만, 코드를 더 명확하게하기 위해 리디렉션을 다시 작성했습니다. – PatL

0

CloudFlare의 유연한 SSL을 사용하는 경우; 연결이 SSL을 통해 이루어져야 할 때와 그렇지 않을 때 웹 서버가 올바르게 식별하지 못할 수 있습니다.

이 문제를 해결하려면 install Mod_CloudFlare on your webserver을 시도해야합니다. 그렇게 할 수 없다면 Apache의 X-Forwarded-Proto 헤더에서 SSL 환경 변수를 설정할 수 있습니다.htaccess로 :

한다 SetEnvIf X-전달 - 프로토 HTTPS HTTPS =

+0

CloudFlare를 사용하지 않도록 설정했습니다. – PatL

0

에 나는

떨어져 다음과 같은 방법을

RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

한다 RewriteCond % {HTTPS} 사용하여 고정

이 오류의 원인입니다.

한다 RewriteCond % {SERVER_PORT}를 사용!^443 $

가 그것을 해결하기 위해.

관련 문제