2013-07-14 15 views
7

Per ragioni troppo lunghe e complesse per entrare (coinvolge diversi livelli di burocrazia aziendale che portano a qualcun altro che non acquista un jolly certificato SSL che ho richiesto), Devo impostare un dominio per reindirizzare tutte le richieste a https://www.xyz.com - protocollo sicuro con il sottodominio www.Reindirizza tutti gli URL http E https non www a https://www.xyz.com via htaccess

Quindi: http://xyz.com, http://www.xyz.com e https://xyz.com dovrebbe TUTTO il reindirizzamento a https://www.xyz.com.

Il mio .htaccess-fu è al massimo debole e non riesco a farlo funzionare. Nota: l'hosting è su Media Temple se questo fa la differenza.

Finora, il mio file .htaccess sembra in questo modo:

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

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

Sia http://xyz.com e http://www.xyz.com stiamo reindirizzando ad https://www.xyz.com, così yay. Tuttavia, è https://xyz.comnon reindirizzamento a https://www.xyz.com e sta gettando in tal modo una pagina di avviso di protezione:

Questo probabilmente non è il sito che si sta cercando!
Hai tentato di raggiungere xyz.com, ma invece hai effettivamente raggiunto un server che si identifica come www.xyz.com. Ciò può essere causato da una configurazione errata sul server o da qualcosa di più serio. Un utente malintenzionato sulla tua rete potrebbe provare a farti visitare una versione contraffatta (e potenzialmente dannosa) di xyz.com.
Non procedere, soprattutto se non si è mai visto questo avviso prima per questo sito.

Qualsiasi aiuto per farmi superare questa ultima gobba sarebbe molto apprezzato!

risposta

8

Questo è molto possibile. usa il seguente codice questo funziona per me.

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

Questo ha risolto il mio problema - grazie @Junaid Atique – Andrew

+0

Questo non ha funzionato per me, perché non avevo il mio certificato abilitato per entrambi www.mydomain.com AND mydomain.com per la risposta di Scottie. – alieninlondon

3

Anche se questo problema è molto vecchio.

Se trovato googeling lo stesso identico problema. Dopo che il codice fornito qui non ha aiutato. Ho provato e provato.

Questo ha funzionato per me:

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

Risolto il problema per me, senza loop o altri errori. Forse aiuterà qualcun altro.

+0

Questa soluzione ha funzionato dopo circa 20 minuti di tentativi di molti elementi, non è perfetta, ma tutto il resto indirizza non http a https://www.example.com che non riuscivo a capire! – Barry

Problemi correlati