2012-02-01 3 views
1

동일한 파일을 사용하지만 다른 템플릿으로 실행하는 사이트가 있습니다. 내 목표는 모든 www 또는 www가 아닌 ​​도메인을 사용하는 것입니다. URL을 www가 아닌 ​​여러 사이트로 다시 작성하십시오.

내 코드입니다 :
RewriteCond %{HTTPS} (on)? 
RewriteCond %{HTTP:Host} ^(?!www\.)(.+)$ [NC] 
RewriteCond %{REQUEST_URI} (.+) 
RewriteCond %{HTTP:Host} ^[^.]+\.[a-z]{2,5}$ [NC] 
RewriteRule .? http(?%1s)://www.%2%3 [R=301,L] 

에 유래 :

을 다른 질문에서 그것을 얻을하지만 www가 도메인을 사용하는 경우이 리디렉션하지 경우 모두, 괜찮

http://domain.de/www/htdocs/user/_production/http%28?s%29://www.

답변

1

다음과 같이 규칙을 단순화하지 않는 이유는 무엇입니까?

Options +FollowSymLinks -MultiViews 
RewriteEngine on 

RewriteCond %{HTTPS} !=on 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
+0

서버 오류가 발생했습니다.이 문제가 무엇인지 명확히하지 않습니다. RewriteCond % {HTTPS}! = RewriteCond % {HTTP_HOST}!^www \. [NC] RewriteRule^http : //www.% {HTTP_HOST} % {REQUEST_URI} [R = 301, L] RewriteCond % {HTTPS} = 켜기 RewriteCond % {HTTP_HOST}! [NC] RewriteRule^https : //www.% {HTTP_HOST} % {REQUEST_URI} [R = 301, L] –

+0

실제로 나쁜 것은'% {REQUEST_URI} '앞에 공백 문자가 있음을 나타냅니다. 나는 그것을 편집했다, pls는 그것을 다시 시험해 본다. – anubhava

+0

감사합니다. 어떻게 리디렉션되는 하위 도메인을 제외 할 수 있습니까? admin.domain.com like –

관련 문제