2013-07-14 23 views
7

Aus Gründen viel zu lange und komplex zu bekommen (es beinhaltet mehrere Schichten von Corporate Bürokratie in jemand anderen nicht einen Kauf Wildcard-SSL-Zertifikat, das ich angefordert habe), muss ich eine Domäne einrichten, um alle Anfragen an https://www.xyz.com - sicheres Protokoll mit der Subdomain www umzuleiten.Umleiten Sie alle http und https nicht-www URLs zu https://www.xyz.com über htaccess

So: http://xyz.com, http://www.xyz.com und https://xyz.com sollte alle umleiten zu https://www.xyz.com.

Meine .htaccess-Fu ist bestenfalls schwach und ich kann nicht scheinen, dass dies funktioniert. Hinweis: Hosting ist auf Media Temple, wenn dies einen Unterschied macht.

Bisher meine .htaccess-Datei sieht so aus:

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] 

Sowohl http://xyz.com und http://www.xyz.com zu https://www.xyz.com umleiten, so yay. Allerdings https://xyz.com ist nicht Umleiten zu https://www.xyz.com und somit wird eine Sicherheitswarnung Seite werfen:

Dies ist wahrscheinlich nicht die Website, die Sie suchen!
Sie haben versucht, xyz.com zu erreichen, aber stattdessen haben Sie tatsächlich einen Server erreicht, der sich als www.xyz.com identifiziert. Dies kann durch eine falsche Konfiguration auf dem Server oder durch etwas schwerwiegender verursacht werden. Ein Angreifer in Ihrem Netzwerk könnte versuchen, Sie dazu zu bringen, eine gefälschte (und potenziell schädliche) Version von xyz.com zu besuchen.
Sie sollten nicht fortfahren, besonders wenn Sie diese Warnung noch nie zuvor für diese Site gesehen haben.

Jegliche Hilfe, um mich an diesem einen letzten Buckel vorbeizubringen, wäre sehr willkommen!

Antwort

8

Dies ist sehr viel möglich. Verwenden Sie den folgenden Code. Das funktioniert für mich.

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

Dies löste mein Problem - danke @Junaid Atique – Andrew

+0

Dies funktionierte nicht für mich, weil ich nicht mein Zertifikat aktiviert für sowohl www.mydomain.com UND mydomain.com nach der Antwort von Scottie. – alieninlondon

3

Auch wenn dieses Problem sehr alt ist.

Wenn gefunden, googelt das exakt gleiche Problem. Nachdem der Code hier nicht geholfen hat. Ich habe es versucht und versucht.

Dieses ist für mich gearbeitet:

 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] 

für mich das Problem behoben, ohne Loops oder andere Fehler. Vielleicht hilft es jemand anderem.

+0

Diese Lösung hat nach etwa 20 Minuten versucht, viele Dinge zu versuchen, es ist nicht perfekt, aber alles andere leitet nicht-http zu https://www.example.com whcih ich nicht herausfinden konnte! – Barry

Verwandte Themen