I가 이미 HTTPS에 해당 URL을 강제로이 코드를 가지고 :HTTP 또는 HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/my/?.*$
RewriteCond %{REQUEST_URI} !^/my/basket/add?.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/login/?.*$
RewriteCond %{REQUEST_URI} ^/logout/?.*$
RewriteCond %{REQUEST_URI} ^/register/?.*$
RewriteCond %{REQUEST_URI} ^/newsletter/?.*$
RewriteCond %{REQUEST_URI} ^/reset-password/?.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
을 그리고 이것은 정말 잘 작동하지만 내가 원하는 것은 을하는 것이 어떤 URL을 힘이다 내가 HTTP
페이지 목록을 작성하고 내가 위의 HTTPS
와 함께이 같은 리디렉션 싶지 않아 (301)
을 발사, HTTP에 위의 조건을 준수하지 않습니다. 보안 페이지 URL은 시스템을 어떻게 든 변경하지 않는 한 항상 동일하게 유지되지만 필요할 때 업데이트 할 수 있습니다. 안전하지 않은 페이지는 여기에서 영업 팀에 의해 동적으로 작성 및 편집 될 수 있으므로 지능적으로 대상이 될 필요가 있습니다.
어떻게 할 수 있습니까? 그것 .htaccess
을 사용하여 수행 할 수있다, 나는 PHP 프레임 워크 내에서 처리하여 이것을 달성하고 있지만 이것은 꽤 중요한 성능 문제뿐만 아니라 Google 크롤 링 문제를 일으켰습니다.
건배!
좋아, 내 HTTPS'RewriteRule'의'L' 플래그는 거기에 일치하는 것이 있으면 우리는 HTTP를 사용하고 리다이렉트하고 마지막으로 처리 된 규칙이라고 말합니다. 하지만 이미 HTTPS를 사용한다면 어떨까요? 내 원래 조건을 무시하고 다시 HTTP로 리디렉션됩니다 ... 그렇지 않습니까? –
사실,이 테스트를 통과하면 항상 HTTP에 항상 아무것도 리디렉션하지 않습니다. –
맞습니다. 보안 페이지의 조건을 추가해야합니다 (일부 중복이 필요합니다). 편집을 참조하십시오. – Kazar