2014-04-14 4 views
5

다음 코드를 사용하여 내 하위 도메인에 대한 모든 http 요청을 https로 리디렉션합니다.모든 하위 도메인을 http에서 https로 리디렉션

<VirtualHost *:80> 
    ServerName subdomain.example.com 
    Redirect 302/https://subdomain.example.com 
</VirtualHost> 

이제 모든 문제는 어떻게 해결합니까? 예를 들어, HTTP의

: subdomain1.example.com HTTPS로 이동한다 : 나는 그것을 어떻게 subdomain2.example.com

: HTTPS로 이동합니다 subdomain2.example.com : subdomain1.example.com 및 HTTP 그

업데이트

모두를위한 하나의 가상 호스트를 만들 필요없이 모든 하위 도메인에 대해 나는 RedirectMatch에이 정규 표현식을 취 것을 발견했다. 누구든지 정규식을 사용하여 그것을 어떻게 알 수 있습니까?

답변

13

이 작업을 수행 할 수 있습니다 :

<VirtualHost *:80> 
    ServerName subdomain.example.com 
    ServerAlias *.example.com 

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ 
    RewriteRule ^(.*)$ https://%1.example.com/$1 [R=302,L] 
</VirtualHost> 

ServerAlias에이 가상 호스트는 다음 HTTPS

에 재에서 그들을 호스트 헤더에서 하위 도메인 (들)을 추출하여 포함 할 수 있습니다, 와일드 카드의 역할을 할 수 있습니다
+0

이것은 이론적 인 구문이지만 서명 된 인증서 없이는 작동하지 않습니다. – drabo2005

+0

답변 해 주셔서 감사합니다. 나는 이것이 나를 위해 일할 것이라고 생각한다. 하지만 "Redirect 302"와 같은 쉬운 구문이 있습니다 –

+3

@ drabo2005 - 뭐라고 요? 이것은 포트 80의 VirtualHost입니다. 즉, HTTP만을 제공합니다.이 호스트에는 인증서가 필요하지 않습니다 ... – arco444