Umleitung von http=>https (ohne "www") + www-https=> nicht-www-https (kein Zertifikat für www)

Ich habe viele Artikel gesehen, auf schreibt. Alles gut. Aber keine, die für diese genaue situation. So, hier ist meine Frage: hoffe, Sie können helfen. Weil ich kann es nicht funktionieren.

  • wir führen website auf domain.com (ohne "www")
  • wir haben ssl einrichten (also nur https)
  • wir haben 1 Zertifikat für die nicht-www-version (nicht-www-version)

Wenn wir führen alle vier Testfälle, 3 sind OK, 1 nicht

  1. http://domain.com => https://domain.com =>
  2. http://www.domain.com => https://domain.com => oK
  3. https://domain.com => OK
  4. https://www.domain.com => FEHLER. Zertifikat-Warnung nicht sicher

Frage: Nun, warum ist die Nummer 4 https://www mir dieser Fehler. Ich würde erwarten, dass die erste Regel um pick-up und schicken Sie uns die nicht-www-version. Und wie kann ich dieses Problem beheben?

Jede Hilfe zu schätzen wissen ;P Sean


Dies ist meine aktuelle htaccess

<IfModule mod_rewrite.c>
  RewriteEngine on
  # Redirect www to non-www first 
  # Added based on article http://stackoverflow.com/questions/234723/generic-htaccess-redirect-www-to-non-www
  RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
  RewriteRule ^(.*) https://%1/$1 [R=301,NE,L]

  # Then redirect http to https (if necessary)
  RewriteCond %{HTTPS} !=on
  RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
</IfModule>
  • Benötigen Sie ein wildcard-Zertifikat, aber ich werde dir helfen hier heraus. Versuchen Sie, entfernen das <IfModule mod_rewrite.c> und </IfModule> und sagen Sie mir, wenn Sie einen Fehler 500.
  • kein Fehler => funktioniert
  • Problem ist das ist schon ein multi-domain-Zertifikat, so bedeutet dies, ich müsste hinzufügen, jeden www. version für ALLE domains separat? Ich kenne keine wildcard multidomain Zertifikate
  • Wildcard-Zertifikate sind eine Besondere Art, wo der name des Hosts ist *.example.com statt example.com. Dies ermöglicht die Verwendung des Zertifikats für ALLE Ihre sub-domains. (Es NICHT Arbeit für die subdomains wie another.cool.example.com. Dazu benötigen Sie ein wildcard-Zertifikat pro sub-Domäne). www können gesehen werden als eine subdomain (in der Regel zugeordnet ist, um die Ordner www, die haben könnte/einen link zu public_html).
  • Versuchen Sie, diese anstelle der Letzte Teil: RewriteCond %{HTTPS} =off RewriteCond %{HTTP_HOST} ^(.*) RewriteRule ^/?(.*) https://%1/$1 [R=301,L] (es teilen, durch Linien, ich kann es nicht in einem Kommentar).
  • Tatsächlich, die erste Prüfung sollte RewriteCond %{HTTPS} ^off$. Getestet hab ich es auf htaccess.madewithlove.werden und es scheint zu funktionieren.
  • >> Eigentlich ist der erste check sollte RewriteCond %{HTTPS} ^off$ - Nein das ist nicht richtig. Denn wenn Sie dann öffnen www.domain.com es geht um domain.com (es ist nicht die Spaltung des www). Dies zuerst getan werden sollte
  • Und ich Fazit (das Lesen der anderen links"), die www, non-www ist einfach nicht möglich ohne eine erweiterte Zertifikat
  • Als ich sagte "Actually, the first check should be RewriteCond %{HTTPS} ^off$", ich war eine Anspielung auf meinen vorherigen Kommentar. Ich konnte es nicht Bearbeiten, weil die Kommentare bekommt "gesperrt" - nach 5 Minuten.
  • Vielleicht eine Lösung? Das problem ist, dass www dient, ein Zertifikat und macht den handshake erfolgen, BEVOR die htacces umleiten. Nehmen wir an, wir hätten eine Möglichkeit zum DEAKTIVIEREN der SSL auf die www-version der website? Auf diese Weise gibt es KEINEN handshake und die directe ausgeführt wird
  • Ich glaube nicht, dass es funktionieren wird, wie Sie es erwarten. Sie können versuchen, zu Fragen, über die Ihr auf serverfault.com (Sie sich nur noch einloggen, loke, wie Sie hier tun). Sie werden eine viel bessere Hilfe. Versuchen Sie auch, Croises " Antwort.

InformationsquelleAutor snh_nl | 2015-02-06
Schreibe einen Kommentar