2017-11-20 5 views
3

나는 완벽한 301 리디렉션을 찾고 있습니다. 그러나 나는 많은 솔루션을 찾고 있으며 어떤 솔루션이 가장 적합한 지 알지 못합니다. 비록 내가 시도하고 그들이 일하고있는 상위 2 옵션. 301 리디렉션 HTTP에서 HTTPS로 : 가장 좋은 방법

내가 누군가가이 일에 나를 도와 주면 좋을 것 http://www.exampledomain.com에서 https://www.exampledomain.com

에 모든 리디렉션하려는 완전히 새로운 사이트입니다. 나는 많은 참조를 발견하고

, 다음과 같이

1. <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.exampledomain.com/$1 [R,L] </IfModule>

2. RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

3. <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule^https://%1%{REQUEST_URI} [R=301,L] </IfModule>

4. RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

,691

5. RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

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

감사 톤, 제이

+0

해당 규칙은 모두 동일한 작업을 수행하지 않으며 일부는 하위 도메인에서도 작동하고 다른 일부는 작동하지 않습니다. 일부는 포트를 사용하고 다른 포트는 HTTPS 환경 변수를 사용합니다. 일부는 URL에 따라 다른 대상으로 리디렉션됩니다. 또한 SSL을 처리하는 역방향 프록시를 사용하고 있고 규칙이있는 백엔드에 일반 HTTP를 회신하는 경우 (예 : 리디렉션을 설정하지 않은 경우 CloudFlare처럼) 사용자가 원하는대로 할 수 없습니다. . – janh

답변

1

그들은 모두는 작은 variantions로 꽤 동일합니다.

  1. 하지 변수 % HTTPS {}으로 포트 번호 (80)에 의해 비 HTTPS 트래픽을 검출하고, 단지 https://www.exampledomain.com/ 리디렉션. 그래서 이걸 건너 뜁니다.

  2. "핵심 버전"인데, "요청이 HTTP 전용 인 경우 적절한 https 버전으로 리디렉션합니다"라고 표시됩니다. 아무것도 더, 아무것도 덜.

  3. 2와 유사하지만 mod_rewrite가 Apache에서 사용 가능한지 여부도 조건을 추가합니다. 확실한 경우 추가 할 필요가 없습니다 (mod_rewrite를 사용하지 않으면이 방법 중 아무 것도 작동하지 않습니다). 또한 도메인 이름의 시작 부분에 "www"를 제거하므로 www.somedomain.com에서 somedomain.com에 이르기까지 모든 트래픽이 www가 아닌 ​​www 버전으로 리디렉션됩니다.

  4. [L , R = 301], 아마도 실수로 생략했을 것입니다.

  5. 2와 유사하지만 www 버전의 도메인 이름으로 리디렉션됩니다.

  6. 2와 비슷하지만 일반적이지는 않지만 example.com (실제 사용하지 않으려는)에서만 작동합니다.

주소에서 www로 바이올린을 치지 않으려면 2를 선택하고 그렇지 않으면 3 또는 5를 선택하십시오. .htaccess 시작 부분에 RewriteEngine On을 추가 할 수 있습니다. 모든 규칙이 아닌 onlu가 한 번 필요합니다. 또한 다른 서버에서 동일한 코드를 사용하려는 경우 어떤 모듈을 사용할 수 있는지 확실하지 않으면 3에서 <IfModule mod_rewrite.c></IfModule>을 추가 할 수 있습니다.

+0

정보를 제공해 주셔서 감사합니다. 아래와 같이해야할까요? 기본적으로 WordPress 시작에서 끝까지 WordPress가 있습니다. 위의 리디렉션 코드를 추가했습니다. '한다 RewriteEngine RewriteRule의 오프 한다 RewriteCond % {HTTPS}의^$ HTTPS (*.) : // % {HTTP_HOST} % {REQUEST_URI}가 [L, R = 301] # 워드 프레스 BEGIN RewriteBase/ 한다 RewriteRule^인덱스 한다 RewriteEngine \ .PHP $! - [L] 한다 RewriteCond % {REQUEST_FILENAME} -f 한다 RewriteCond % {REQUEST_FILENAME} 한다 RewriteRule을 -d. /index.php [L] # END WordPress' – Mrutyunjaya