it-swarm.com.de

So leiten Sie alle (www) .example. (Com / net / org) auf https://example.com um

Wie richte ich eine URL/URI für ein?

http(s)://(www).example.(com/net/org)/somepath

am entsprechenden landen:

https://example.com/somepath

Ich vermute, dass die Lösung (falls vorhanden) DNS-Einstellungen und .htaccess Voodoo beinhaltet. Aber ich verstehe nicht wirklich, wie diese Dinge funktionieren (besonders .htaccess). Wir würden uns daher auch über einige konkrete Vorschläge zum Lesen freuen. (Ja, ich kann googeln, aber dies scheint eine ziemlich spezifische und/oder esoterische Frage zu sein, und es ist mir nicht gelungen, eine Lösung zu finden. Oder ich könnte dumm sein ...)

Konfiguration:

Ich habe Domains example.net/.org/.com, die alle bei demselben Registrar registriert sind. Über die Domain-Einstellungen des Registrars habe ich example.net und .org eingerichtet, um (301) zu example.com umzuleiten. Ich habe example.com bei einem separaten Shared Hosting-Unternehmen gehostet, das Apache & cPanel verwendet.

Derzeit funktionieren einige Weiterleitungen: http://(with or without www).example.(net/org) => http://example.com.

http://www.example.com leitet jedoch nicht nur zu http://example.com um.

Nun zum kniffligen Teil. Der Webhost verfügt auch über "SNI-basiertes SSL". Also, https://exmple.com und https://www.example.com funktionieren beide, aber mit https leitet die WWW-URL nicht zur Basisdomäne um (https://example.com).

Darüber hinaus funktioniert https://example.net weder mit noch ohne www (keine Verbindung/Timeout).

Also, kurz gesagt (zu spät?), Wie konfiguriere ich, wenn möglich, alle Permutationen der oben genannten Werte so, dass sie am entsprechenden Ende landen:

https://example.com/somepath

Oder, wenn die Antwort die Fertigstellung einer Doktorarbeit zur Umsetzung erfordern würde, was ist eine übliche/vernünftige Vorgehensweise?

3
Self Evident

Darüber hinaus funktioniert https://example.net weder mit noch ohne www (keine Verbindung/Timeout).

Damit .net und .org auf HTTPS funktionieren, müssen Sie über SSL-Zertifikate verfügen, die diese Domänen abdecken (wie Sie es bereits für .com getan haben) - "SNI-basiertes SSL" ist in Ordnung. Zu diesem Zweck benötigen Sie jedoch wahrscheinlich das DNS für diese Domänen, das auf denselben Server (Ihr Hosting-Konto) verweist, und diese Domänen, die in Ihrem cPanel-Konto als "Alias" -Domänen (oder als "Geparkt" -Domänen) konfiguriert sind. dh Ändern Sie die NAMESERVERS in diesen Domains bei Ihrem Registrar, so wie Sie es wahrscheinlich für example.com getan haben. (Es sei denn, Ihr Domain-Registrar kann SSL für diese Domains konfigurieren und Sie können die entsprechende Weiterleitung von diesem Ende aus konfigurieren - was ich sehr bezweifle.)

Sie können dann SSL-Zertifikate ausstellen ("Let's Encrypt"?), Die diese zusätzlichen Domainnamen in cPanel abdecken.

Derzeit haben Sie Weiterleitungen für .net und .org von Ihrem Registrar, da der DNS derzeit von Ihrem Registrar verwaltet wird. Wenn Sie den DNS auf Ihren Webhost verweisen, funktionieren diese Weiterleitungen natürlich nicht mehr.

Und nun zum .htaccess "voodoo", um alles an Ihren Canonical Host (example.com) und HTTPS umzuleiten. Eigentlich ist es gar nicht so schlecht, was Redirects angeht.

Fügen Sie oben in der Datei .htaccess im Dokumentstamm die folgenden mod_rewrite-Anweisungen hinzu:

RewriteEngine On
RewriteCond %{HTTP_Host} !^example\.com$ [OR]
RewriteCond %{HTTPS} !on
RewriteRule ^ https://example.com%{REQUEST_URI} [R=302,L]

Die obigen Zustände ... wenn der angeforderte Host nichtexample.com (der kanonische Host) oder die Anforderung nicht HTTPS (das gewünschte Schema) ist, leiten Sie zu https://example.com/somepath um.

Beachten Sie, dass dies eine (vorübergehende) Weiterleitung ist. Ändern Sie dies nur in eine 301 (permanent), wenn Sie bestätigt haben, dass es in Ordnung ist. 301s werden vom Browser (standardmäßig) hart zwischengespeichert, was das Testen problematisch machen kann.

2
MrWhite