2014-04-14 19 views
5

Ich umleiten alle HTTP-Anforderungen für meine Sub-Domain zu https mit folgendem Code.umleiten alle Subdomains von http zu https

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

Jetzt ist mein Problem, wie mache ich es für alle Subdomains.

Zum Beispiel http: subdomain1.example.com gehen sollte https: subdomain1.example.com und http: subdomain2.example.com gehen sollte https: subdomain2.example.com

Wie kann ich es tun für alle Sub-Domains, ohne dass ein Virtualhost für alle von ihnen

aktualisieren

ich fand zu schaffen, dass RedirectMatch regulären Ausdruck kommt. Weiß jemand, wie man es mit Regex macht?

Antwort

13

Sie können dies tun:

<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> 

Die Serveralias die vhost als Platzhalter handeln lassen, dann können Sie die Sub-Domain-Extrakt (e) aus der Host-Header und sie in der Rewrite auf https

+0

Dies ist eine theoretische Syntax, aber es kann nicht ohne ein signiertes Zertifikat arbeiten. – drabo2005

+0

Danke für die Antwort. Ich denke, das wird für mich funktionieren. Aber gibt es eine einfachere Syntax dafür? "Redirect 302" –

+3

@ drabo2005 - Was? Dies ist ein VirtualHost auf Port 80 - d. H. Es wird nur HTTP bedient - auf diesem Host ist kein Zertifikat erforderlich ... – arco444