다음으로 변경 domain.com
됩니다 www.domain.com
.
# Force the "www."
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
모든 도메인에서 작동하도록 "도메인"부분을 어떻게 바꾸 나요?
다음으로 변경 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로 병합합니다.ons
s
RewriteRule
RewriteEngine On
그대로 복사하여 붙여 넣으면 500 서버 오류가 발생할 수 있으므로이를 완료하기위한 첫 번째 줄로 추가 합니다.
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]
RewriteCond %{HTTP_HOST} !^(.*)\.(.*)\.(.*)\. [NC]
(엄밀히 말하면, 당신의 TLD는 여전히 .uk
및 도메인입니다 something.co
.)
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 . (여기에 코드를 붙여넣고 서식을 지정해도 효과가 없었습니다)
이것은 나를 위해 마술처럼 작동했습니다.
RewriteCond % {HTTP_HOST} ^ sitename.com [NC] RewriteRule ^ (. *) $ https://www.sitename.com/ $ 1 [L, R = 301, NC]
RewriteCond %{HTTP_HOST} ^yourdomain.com [NC]