2014-04-14 12 views
5

reindirizzo tutte le richieste http per il mio sottodominio a https utilizzando il seguente codice.reindirizza tutti i sottodomini da http a https

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

Ora il mio problema è come farlo per tutti i sottodomini.

Per esempio http: subdomain1.example.com dovrebbe andare a https: subdomain1.example.com e http: subdomain2.example.com dovrebbe andare a https: subdomain2.example.com

Come posso fare per tutti i sottodomini senza dover creare una virtualhost per tutti loro

Aggiornamento

ho scoperto che RedirectMatch prende un'espressione regolare. Qualcuno sa come farlo usando regex?

risposta

13

Si potrebbe fare questo:

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

Le ServerAlias ​​permetteranno al vhost di agire come un jolly, è possibile estrarre il sottodominio (s) dal intestazione host e includerli nella riscrittura https

+0

questa è una sintassi teorica, ma non può funzionare senza un certificato firmato. – drabo2005

+0

Grazie per la risposta. Penso che questo funzionerà per me. Ma c'è una sintassi più semplice per fare questo come "Redirect 302" –

+3

@ drabo2005 - Cosa? Questo è un VirtualHost sulla porta 80, cioè serve solo HTTP, non è richiesto alcun certificato su questo host ... – arco444

Problemi correlati