2012-05-23 15 views
6

Ich suchte und fand Hunderte von verwandten Fällen, aber keine genau so, was ich brauche. Ich brauche eine Kombination von Umleitungen Folgendes zu tun:Umleiten von https zu nicht-www und http zu www

Zugang zu:

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

While:

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

Für normale http Website, möchte ich www erzwingen.

Aber das SSL-Zertifikat funktioniert nur ohne www, so https sollte nicht das www haben.

Danke, wenn mir jemand helfen kann.

+1

Warum in aller Welt möchten Sie das? – Gerben

+0

Weil das ssl-Zertifikat nur für "mysite.com" eingerichtet ist – Zarco

+3

Dann, warum nicht auch HTTP-Verkehr auf die None-WWW-Version umleiten? – Gerben

Antwort

0

dies in der .htaccess Datei Legen Sie Ihre Nicht-HTTPS Dokument root:

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

Und dies in Ihrem HTTPS Dokument root:

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

Nicht funktioniert, als ob es überhaupt keine Wirkung hatte. – Zarco

+0

Keine funktioniert? Sind Sie sicher, dass Ihre .htaccess-Dateien gelesen werden? – Ansari

+0

Nach weiteren Tests, ja, das erste funktioniert. 'http: // mysite.com' wird zu' http: // www.mysite.com' umgeleitet. Aber 'https: // www.mysite.com' wird nicht zu' https: // mysite.com' weitergeleitet. – Zarco

11

Die Umleitung https://www.mysite.com-https://mysite.com kann nur geschehen, nachdem der Client eine erste Anfrage an https://www.mysite.com gestellt hat.

Damit diese anfängliche Verbindung funktioniert, muss der Server unter https://www.mysite.com über ein Zertifikat verfügen, das für www.mysite.com gültig ist, andernfalls wird diese Verbindung nicht einmal ausgeführt (und der Server sendet keine Umleitungsantwort).

Wenn Sie weiterhin eine Umleitung wünschen, muss Ihr Server auf demselben Server ein Zertifikat vorlegen, das für die Hostnamen gültig ist, die Sie bereitstellen möchten. Sie sollten ein Zertifikat mit zwei Subject Alternative Name DNS-Einträgen erhalten: mysite.com und www.mysite.com; Auf diese Weise können Sie beide Hosts mit demselben Zertifikat versorgen (und dann bei Bedarf die Regeln zum erneuten Schreiben verwenden).

(Sie können auch Server Name Indication mit zwei verschiedenen Zertifikate verwenden, wenn Sie die Kunden erwarten, sie zu unterstützen, aber das ist in der Regel für ganz andere Hostnamen.)

Es ist durchaus üblich für CAs Zertifikate auszustellen, die gültig für beide mysite.com und www.mysite.com, wenn Sie sich für eine der anderen bewerben, manchmal ohne eine zusätzliche Gebühr.

+0

Wissen Sie, wie dies mit 'Redirect' anstelle von' Rewrite' geschehen kann ??? –