.htaccess- "www"를 강제하는 방법 일반적인 방법으로?
다음으로 변경 domain.com됩니다 www.domain.com.
# Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
모든 도메인에서 작동하도록 "도메인"부분을 어떻게 바꾸 나요?
답변
이 규칙을 사용합니다.
RewriteEngine On
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
첫 번째 조건은 Host 값이 비어 있지 않은지 확인합니다 (HTTP / 1.0의 경우). 두 번째는 Host 값이로 시작하지 않는지 확인합니다 www.. HTTPS위한 제 수표 ( %{HTTPS}하나 인 on또는 off그래서 %{HTTPS}s하나이고 ons또는 offs와 경우 일치). 그런 다음 의 대체 부분은 정보 부분을 전체 URL로 병합합니다.onssRewriteRule
이것은 그것을 할 것입니다 :
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
www가 아닌 모든 요청을 www 버전으로 리디렉션하려면 다음 코드를 .htaccess 파일에 추가하기 만하면됩니다.
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
하위 도메인에서는 작동하지 않습니다.
domain.com이 www.domain.com으로 올바르게 리디렉션됩니다.
그러나
images.domain.com이 www.images.domain.com으로 리디렉션됩니다.
하위 도메인이 "www가 아님"인지 확인하는 대신 두 개의 점이 있는지 확인합니다.
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ HTTP%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
다음은 'www'가없는 요청 앞에 'www'라는 접두사를 붙이고 편집 된 요청을 새 URI로 리디렉션해야합니다. ㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ
RewriteCond "%{HTTP_HOST}" "!^www\." [NC]
RewriteCond "%{HTTP_HOST}" "(.*)"
RewriteRule "(.*)" "http://www.%1$1" [R=301,L]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
하위 도메인 제외로 리디렉션 example.com됩니다 www.example.com.
이것은 오래된 질문이며이를 수행하는 방법에는 여러 가지가 있습니다. 가장 완전한 대답 인 IMHO는 여기에서 찾을 수 있습니다.https://gist.github.com/vielhuber/f2c6bdd1ed9024023fe4. (여기에 코드를 붙여넣고 서식을 지정해도 효과가 없었습니다.)