web-dev-qa-db-de.com

Leiten Sie verschiedene http-Domains über htaccess auf eine bestimmte https-Domain um

Ich habe eine Reihe von Domain-Namen mit verschiedenen TLDs. Ich möchte, dass mehrere Domains auf die "main" -Domain verweisen, die ein SSL-Zertifikat (Single Domain) hat.

So was:

https://maindomain.com (main domain with SSL cert)
http://additionaldomain1.net (should redirect to https://maincomain.com and rewrite the URLs)
http://additionaldomain2.org (should redirect to https://maincomain.com and rewrite the URLs)

Die https-Domäne verweist auf das Verzeichnis, in dem sich die Website-Daten befinden. In diesem Verzeichnis habe ich einen Unterordner erstellt, auf den ich die zusätzlichen Domänen verwiesen habe, da ich dachte, ich könnte dort eine HTAccess-Datei ablegen, um die Umleitung und das Umschreiben zu verwalten. Ist das soweit in Ordnung?

Ich habe Probleme, die richtigen HTAccess-Regeln zu finden, die die angeforderte Domain (entweder additionaldomain1.net oder additionaldomain2.org) dauerhaft auf https://maindomain.com umleiten und die URLs korrekt umschreiben.

Ich habe das Einfachste ausprobiert, was mir in den Sinn gekommen ist:

Redirect permanent / https://maindomain.com/

Dies führte jedoch z. https://additionaldomain1.net was natürlich nicht funktioniert.

Bearbeiten:

Ich verwende WordPress und setze https://maindomain.com als Blog-URL sowie als Site-URL in die Einstellungen ein und habe WordPress SSL erzwingen lassen.

Kann jemand bitte helfen?

5
okiedokey

Wenn Ihre zusätzlichen Domänen auf Unterverzeichnisse außerhalb des Dokumentstamms der Hauptdomäne verweisen, können Sie dem .htaccess-Verzeichnis in diesem Unterverzeichnis Folgendes hinzufügen, um zur Hauptdomäne umzuleiten:

RewriteEngine On
RewriteRule (.*) https://maindomain.com/$1 [R=302,L]

Beachten Sie, dass dies mod_rewrite verwendet, nicht mod_alias (Redirect). Daher werden die mod_rewrite-Direktiven in der übergeordneten .htaccess-Datei überschrieben. Dies setzt voraus, dass in der übergeordneten .htaccess-Datei (die die Anweisungen WordPress enthält) kein mod_alias verwendet wird. (WordPress verwendet normalerweise nur mod_rewrite.)

Ändern Sie die 302 (temporäre) Weiterleitung in eine 301 (permanente) Weiterleitung, wenn Sie zufrieden sind, dass sie funktioniert.


Eine Alternative (wie in den Kommentaren erwähnt) besteht darin, diese zusätzlichen Domänen im Gegensatz zu Unterverzeichnissen einfach auf das Dokumentstammverzeichnis der Hauptdomäne zu verweisen. Dann müssten Sie die .htaccess-Hauptdomänendatei ändern und eine ähnliche externe Umleitung einfügen vor den Anweisungen WordPress. So etwas wie:

RewriteEngine On
RewriteCond %{HTTP_Host} ^(www\.)?additionaldomain1\.net$
RewriteRule (.*) https://maindomain.com/$1 [R=302,L]

Tatsächlich können Sie dies ohnehin mit den Unterverzeichnissen tun und nicht die .htaccess-Datei im Unterverzeichnis verwenden. .htaccess-Dateien werden standardmäßig vererbt.

2
MrWhite