2012-05-23 17 views
6

Ho cercato e trovato centinaia di casi correlati, ma nessuno esattamente come quello di cui ho bisogno. Ho bisogno di una combinazione di reindirizzamenti per effettuare le seguenti operazioni:Reindirizzamento https a non www e http a www

Accesso per:

http://mysite.com -redirected to-> http://www.mysite.com 

Mentre:

https://www.mysite.com -redirected to-> https://mysite.com 

Per il normale http sito, voglio forzare www.

Ma il certificato SSL funziona solo senza www, quindi https non dovrebbeavere il www.

Grazie se qualcuno mi può aiutare.

+1

Perché mai lo vorresti? – Gerben

+0

Poiché il certificato ssl è impostato solo per "mysite.com" – Zarco

+3

Quindi, perché non reindirizzare il traffico http alla versione none-www? – Gerben

risposta

0

mettere questo nel vostro file .htaccess nella tua non HTTPS radice documento:

RewriteCond %{HTTP_HOST} ^mysite.com$ 
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R] 

E questo nel documento HTTPS root:

RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} ^www.mysite.com$ 
RewriteRule ^(.*)$ https://mysite.com/$1 [R] 
+0

Non funziona, come se non avesse alcun effetto. – Zarco

+0

Nessuno dei due sta funzionando? Sei sicuro che i tuoi file .htaccess vengano letti? – Ansari

+0

Dopo ulteriori test, sì, il primo funziona. 'http: // mysite.com' viene reindirizzato a' http: // www.mysite.com' Ma 'https: // www.mysite.com' non viene reindirizzato a 'https: // mysite.com' – Zarco

11

Il reindirizzamento https://www.mysite.com-https://mysite.com può si verifica solo dopo che il client ha effettuato una richiesta iniziale a https://www.mysite.com.

Per questa connessione iniziale, il server su https://www.mysite.com deve avere un certificato valido per www.mysite.com, altrimenti questa connessione non si verificherà nemmeno (e il server non invierà una risposta di reindirizzamento).

Se si desidera comunque un reindirizzamento, sullo stesso server, il server deve presentare un certificato valido per i nomi host che si desidera pubblicare. È necessario ottenere un certificato con due voci DNS di Nome alternativo soggetto: mysite.com e www.mysite.com; questo ti permetterà di servire entrambi gli host con lo stesso certificato (e poi usare le regole di riscrittura se necessario).

(Si potrebbe anche usare Server Name Indication con due certificati distinti, se si prevede che i clienti per sostenere, ma che di solito è per completamente diversi nomi host.)

E 'abbastanza comune per le CA di emettere certificati che sono valido sia per mysite.com e www.mysite.com quando si applica per uno degli altri, a volte senza un costo aggiuntivo.

+0

sai come si può fare usando 'Redirect' invece di' Riscrivere' ??? –

Problemi correlati