Eine htaccess und mehrere Domains in einem Ordner umleiten bzw weiterleiten

Ein bekanntes Problem, mit einer htaccess mehrere Domains in einem zentralen Ordner korrekt weiterleiten bzw. umleiten

Juli 5, 2023 - Lesezeit: 3 Minuten

Inhalt

Multidomain-Installation

Relativ üblich ist die folgende Problemstellung der Multidomains in einem zentralen Installationsordner. Viele Admins und Webseitenbetreiber installieren ein zentrales CMS-Image und schalten via Konfiguration den Content der gewünschten Domain zu - das erleichtert die Pflege und Wartung erheblich und minimiert Kosten, denn traditionell müsste je Domain ein CMS installiert werden das sogar oftmals immer das gleiche ist.

Problematisch wird die ganze Sache aber erst dann, wenn es darum geht die verschiedenen Webseiten SEO-Konform zu machen und den gefürchteten DuplicateContent [^1] mittels einer WWW auf non-WWW Weiterleitung zu umschiffen.

Diese Technik funktioniert natürlich nur mit CMS die Config-Files für die Steuerung der einzelnen Pfade der betreffenden Sourcen nutzen, zum Beispiel Pico oder Yellow sind dazu bereits in der Lage. Flat File CMS wie GRAV und co. sind dazu sicherlich ebenfalls in der Lage. Theoretisch ist dies aber mit allen CMS möglich.

htaccess Einstellungen

Die htaccess muss dafür wie folgt konfiguriert werden, damit die Suchmaschine den Inhalt nicht als DuplicateContent wertet. Im folgenden Beispiel werden alle Anfragen auf non-WWW weitergeleitet:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

#-- Domain A
RewriteCond %{HTTP_HOST} ^www\.domain-a\.de$ [NC]
RewriteRule ^(.*)$ domain-a.de/$1 [L,R=301]

#-- Domain B
RewriteCond %{HTTP_HOST} ^www\.domain-b\.de$ [NC]
RewriteRule ^(.*)$ domain-b.de/$1 [L,R=301]

#-- Domain C
RewriteCond %{HTTP_HOST} ^www\.domain-c\.de$ [NC] 
RewriteRule ^(.*)$ domain-c.de/$1 [L,R=301]

</IfModule>

htaccess mit mehreren Domain in einem Verzeichnis

Damit sich die Wirkung im Browser einstellt, muss der Browser geschlossen und neu gestartet werden, damit er die neue Konfiguration aus der htaccess läd, ansonsten kann es zu Fehlverhalten kommen (ggf. sollte auch der Cache gelöscht werden). Im übrigen, können HTTP und HTTPS Domains ebenfalls miteinander vermischt werden und auf das selbe Installationsverzeichnis zeigen, dies spielt für die htaccess überhaupt keine Rolle.

Der Webserver speichert zunächst alle drei Bedingungen (Conditions) im Speicher ab und führt die dazugehörige Regel (Rule) aus, wenn die festgesetzte Condition am Server eintrifft.

index.php

In der zentralen index.php [^2] des root-Verzeichnis der Domains, denn es ist ja ein einziges CMS-Image, kann dann mittels $_SERVER['SERVER_NAME']

$yellow = new YellowCore();
if ($_SERVER['SERVER_NAME'] == 'domain-a.de') {$yellow->load('yellow-system_domain-a.ini');}
if ($_SERVER['SERVER_NAME'] == 'domain-b.de') {$yellow->load('yellow-system_domain-b.ini');}
if ($_SERVER['SERVER_NAME'] == 'domain-c.de') {$yellow->load('yellow-system_domain-c.ini');}
$yellow->request();

Umschalten der Konfiguration je nach gerufener Domain

die entsprechende Konfiguration der gerufenenen Domain in den Core des CMS geladen werden. Im Anschluss daran kann der eigentliche Core des CMS gestartet werden.

Der Code oben ist Pseudocode und ist stark an das CMS Yellow angelehnt, da dieses etwa nach diesem Prinzip arbeitet. Für jedes andere CMS muss eine Alternative entwickelt werden.

[^1]: Meist sind Domains über http://Domain.tld und http://www.domain.tld erreichbar. Technisch ist es die selbe Domain, jedoch wertet Google und co dies als Versuch das Ranking zu manipulieren indem doppelter Content zur Verfügung gestellt wird - was natürlich ausgemachter Unsinn ist (im Jahre 2023 sollte man meinen das Google das mal langsam versteht). Daher werden die beiden Schreibweisen mit WWW und non-WWW auf eine Adresse weitergeleitet - das ist für die Suchmaschine OK.

[^2]: Am Beispiel des Flat File CMS Yellow umgesetzt. Zusätzlich muss allerdings der Yellow-Core angepasst werden und die load() Methode um die gezeigte Signatur erweitert werden, damit diese verschiedene Config-Files verarbeiten kann, statt der fest im Core hinterlegten Config-Datei.

Schlagworte:

Beiträge in der Kategorie "htaccess":

So verbieten Sie den Zugriff auf das Logfile ihrer Webseite in der htaccess

Für mehr Kontrolle beim sperren von unliebsamen URI Aufrufen sorgt dieses PHP-Script

Sperren Sie nervige Spider und Bots Ihrer Webseite komplett und dauerhaft mit der htaccess aus.

Sperren Sie nervige Spider und Bots Ihrer Webseite komplett und dauerhaft mit der htaccess aus.

Ein bekanntes Problem, mit einer htaccess mehrere Domains in einem zentralen Ordner korrekt weiterleiten bzw. umleiten

Kategorien

Automad

Das kostenlose Flat File CMS Automad bietet bereits nach der Installation auf dem Server das beste Layout unter allen CMS am Markt.

Bludit

Das kostenlose Flatfile CMS Bludit ist das beliebteste Content Management System, das dem großen WordPress sehr nahe kommt, jedoch deutlich mehr Sicherheit bietet.

CMS

In dieser Rubrik geht es um übergreifenden Themen aus dem Bereich der Content Management Systeme.

Coast

Coast ist ein CMS aus deutscher Feder und ist mit einem exzellenten HTML/PHP Frontend-Editor zu vergleichen, die Daten werden direkt in der HTML-Datei gespeichert.

GetSimple

Das kostenlose Content Management System GetSimple verspricht genau das, was der Name andeutet, ein stabiles Flat File CMS auf der Basis von XML-Dateien.

GRAV

Das kostenlose Content Management System GRAV gehört zu den komplexesten CMS, da es den größten Funktionsumfang mitbringt.

Handlebars.JS

Handlebars.js ist eine kostenlose JavaScript Template-Engine mit der einfache Webseiten oder Prototypen leicht und schnell erzeugt werden können.

htaccess

Die .htaccess ist die wohl wichtigste und mächtigste Datei, über die der Server seinen Umgang mit den Daten und Besuchern steuert.

Java

Java ist die strategische Programmiersprache für verteilte Anwendungen im Internet oder auch in der Client-Server Architektur und sogar auf dem Host.

Monstra

Das CMS Monstra ist ein überaus gelungenes und sauber entwickeltes CMS mit Admin-Backend und Flat File Datenbank.

PHP

PHP ist die strategische Programmiersprache des Internets, mit PHP geht alles und ohne PHP nichts! Allerdings ist PHP nicht auf lokalen Client-Umgebungen verbreitet (aber möglich).

Pico

Das CMS Pico ist derzeit das ausgereifteste und einfachste headless CMS für den Einsatz großer Mengen an MarkDown-Files (Content).

Smarty

Smarty ist eine Template-Engine auf Basis der Programmiersprache PHP und ist in der Lage HTML-Vorlagen (Templates) dynamisch mit Content zu versorgen.

Typemill

Typemill ist zunächst ein ganz normales Flat File CMS, entfaltet jedoch sein wahres Potenzial mit einigen besonderen Plugins, die es zum kraftvollen Publishing-Tool macht.

WonderCMS

WonderCMS ist das mit Abstand kleinste CMS das es derzeit kostenlos gibt. WonderCMS kommt mit einem PHP-Script und einer JSON-Datenbank aus und bietet ein Backend.

WordPress

Das datenbankbasierte Content Management System WordPress ist das beliebteste CMS und hält die meisten Installationen - ist allerdings auch das am meisten attackierte System.

Derzeit sind noch keine passenden Beiträge vorhanden.