[.htaccess] .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’가없는 모든 요청에 ​​접두사를 붙이고 편집 된 요청을 새 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 . (여기에 코드를 붙여넣고 서식을 지정해도 효과가 없었습니다)