2012-08-01 15 views
6

Sto provando a eseguire il mio intero sito tramite https e forza www.Forza SSL e WWW insieme usando htaccess

Ho visto un numero di soluzioni che prevedono forzare www o https e anche alcuni combinati, ma non riesco a far funzionare nessuno. Di solito mi trovo in un ciclo di reindirizzamento.

Il più vicino che ho è la seguente, ma non è abbastanza vicino ancora:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301] 

Ho bisogno https://www.example.com/

http://example.com SUCCESS
https://example.com SUCCESS
http://www.example.com FAIL
https://www.example.com SUCCESS, anche se non c'è reale reindirizzamento.

Grazie

Aggiornamento
Il seguente codice esegue con successo il reindirizzamento ho bisogno:

RewriteCond %{ENV:HTTPS} !on [NC] 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

RewriteCond %{ENV:HTTPS} on [NC] 
RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 
+0

Se hai trovato una soluzione come l'aggiornamento suggerisce, si prega di inviare come risposta te stesso e lo accetto. Aiuta a mantenere la natura Q & A del sito. – bPratik

risposta

5

Forzare https e www è fatto da una combinazione di altre risposte fornite.

Questo sembra funzionare:

RewriteCond %{ENV:HTTPS} !on [NC] 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

RewriteCond %{ENV:HTTPS} on [NC] 
RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 
0

Prova ad aggiungere una bandiera [OR] alle vostre condizioni. Si vuole veramente sia senza www o non https:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC,OR] 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301] 
+0

Che funziona, l'URL risultante è quello che voglio, anche se vedo il messaggio del ciclo di reindirizzamento, non il sito. –

+0

@JasonVarga non è sicuro del motivo per cui ciò causerebbe un ciclo di reindirizzamento quando le regole originali non lo erano –

1

Prova questa condizione, invece, dovrebbe costringere il sito in SSL per il dominio

RewriteCond %{ENV:HTTPS} !on [NC] 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 
+0

Ciò impone SSL ma non impone il www. Ho usato una combinazione della tua regola con un'altra per reindirizzare correttamente come voglio. Grazie. –

Problemi correlati