2017-04-10 3 views
1

내 SSL 인증서가 만료 되었기 때문에 여러 조건을 사용하여 https 페이지를 모두 http으로 리디렉션하려고했습니다. 변경 사항을 반영하는 데 시간이 걸리므로 https로 요청한 모든 요청을 http를 통해 호출하도록 리디렉션하고 싶습니다. https에서 http로 리디렉션이 작동하지 않습니다.

다음 규칙을 시도 :

RewriteCond %{HTTPS} on 
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 


RewriteCond %{HTTPS} ^on$ 
RewriteRule ^(.*)$ http://my_site.com/$1 [NC,L,R] 


RewriteCond %{HTTP:X-Forwarded-Proto} =https 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

아무것도 작동하는 것 같다. 이 문제를 해결할 더 좋은 방법이 있습니까?

+0

실제로 일어나는 것은 무엇입니까? 아니면 오류? HTTP URL을 직접 입력하면 사이트가 작동합니까? 브라우저 캐시를 비우셨습니까? (아마도 이전에 HTTP에서 HTTPS로 301을 구현했을 것입니다. 이것은 브라우저에 의해 캐싱되었습니다.) HSTS를 구현 했습니까? CDN을 사용하고 있습니까? 다른 지침이 있습니까? 다른'.htaccess' 파일들? mod_rewrite가 활성화 되었습니까? '.htaccess'가 활성화 되었습니까? – MrWhite

+0

@ w3dk 모두 작동 중입니다. 감사합니다. 이 규칙은 파일 시작시 적용 되었기 때문에 발생했습니다. 나는 파일의 끝에 그것들을 놓으려고했는데 지금은 작동 중이다. –

답변

0

파일의 시작 부분에 규칙을 배치하는 대신 파일 끝 부분에 규칙을 배치하여 해결했습니다.

+0

다행 이군. 그러나 이러한 지시문을 파일의 끝에 배치하는 것은 실제로 이해가되지 않습니다. 이러한 지시문은 파일 시작 부분에 있어야합니다 (사실 "필자"라고 말합니다). 같은 지시어가 작동하고 파일의 끝으로 옮기면 그 문제는 "뭔가 다른 것"(예 : 캐시 또는 무언가)이라고 생각할 수 있습니까? 파일의 끝에 지시문을 보관하면 나중에 추가하는 지시문으로 인해이 리디렉션이 일어나지 않을 가능성이 높습니다. – MrWhite

+0

@ w3dk 그래, 리디렉션 규칙 이후에 일부 규칙은이 규칙을 작성하고 URL을 https로 다시 리디렉션해야합니다. 그러나, 그것은 일하고 마지막 순간에 나를 도왔습니다. 이제 SSL 인증서가 등록되고 업데이트됩니다. https를 통해 사이트를 다시 실행 중입니다. :) –

관련 문제