SEO: Domainaufruf mit oder ohne www umschreiben

Dieser Artikel beschreibt, wie Sie den Aufruf Ihrer Domain(s) so umschreiben, dass dieser entweder mit oder ohne www erfolgt.

Webserver sind in der Regel so konfiguriert, dass eine Domain gleichzeitig auch über die gängige www-Subdomain aufgerufen werden kann (domain.dd, www.domain.dd). Suchmaschinen können das ggf. als doppelten Inhalt (Duplicate Content) ansehen, weshalb es in solchen Fällen ratsam sein kann, die nicht gewünschten URL-Aufrufe umzuleiten (z.B. domain.dd -> www.domain.dd). Entsprechend bekommen Seitenbesucher in der Adressleiste des Browsers und auch die Suchdienste nur die gewünschte Domain bzw. Subdomain angezeigt.
Hierzu bietet sich eine htaccess-Datei oder eine Abfrage über PHP an.

Beim Einsatz einer aktuellen BASE Classic 2.x bzw. BASE (Mobile First) können Sie übrigens alternativ zu den unten angeführten Umsetzungen direkt in den Projekteinstellungen des Inhaltsprojektes festlegen, welche Domain herangezogen werden soll. Im Feld "Nur über folgende Domain aufrufbar" hinterlegen Sie Ihre Domain entweder mit oder ohne www (z.B. www.domain.dd).
Über den Skript-Code in der pre.php und wMyProject.php wird dies über die Funkion wMyProject::executeAccessRules() vorgenommen.

Beispiel 1: Umsetzung über Projekteinstellungen

Aktuelle BASE Projekte verfügen bereits über den erforderlichen Code (ähnlich Beispiel 3), damit durch Angabe in den Projekteinstellungen des Inhaltsprojektes die Domain angegeben werden kann, über welche Seitenbesucher den Aufruf nur vornehmen können.

Sollte dies in Ihrem Projekt nicht funktionieren, sind die erforderlichen Einträge in der pre.php und wMyProject.php nicht vorhanden. Sie können diese entweder auf Grundlage des aktuellen Projektes nachrüsten oder eine der folgenden Umsetzungen wählen.

Beispiel 2: Umsetzung über .htaccess (mod_rewrite)

Legen Sie eine .htaccess Datei auf oberster Ebene der Domain ab. Informationen zur Syntax innerhalb der htaccess-Datei finden Sie über die weiterführenden Informationen. Entscheiden Sie in der Rewrite-Regel, ob Sie die Aufrufe mit oder ohne www definieren wollen.

Beispiel: Auszug aus /.htaccess zum Umschreiben von nicht-www-Aufrufen

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^domain\.dd$ [NC]
RewriteRule ^(.*)$ https://www.domain.dd/$1 [NE,R=301,L]

# wenn Sie die Aufrufe ohne www setzen wollen:
# RewriteCond %{HTTP_HOST} ^www\.domain\.dd$ [NC]
# RewriteRule ^(.*)$ http://domain.dd/$1 [R=301,L]

## !! Beachten Sie die Hinweise unten !!

Beispiel 3: Umsetzung über PHP (pre.php)

Alternativ zur Umsetzung über mod_rewrite (.htaccess) können Sie auch über PHP eine entsprechende Abfrage in der pre.php des globalen Projektes vornehmen. Platzieren Sie dies direkt nach dem schon vorhandenen Include der grid.php.

Folgendes Beispiel führt dies an und nutzt dafür die Server-Umgebungsvariable HTTP_HOST, also die aufrufende Domain.

Beispiel: Auszug aus der pre.php des Global-Projektes

...
// Hier wird das Weblication Framework eingebunden
include_once($_SERVER['DOCUMENT_ROOT'].'/weblication/grid.php');

// Nicht-www-Aufruf auf www umleiten:
if(!preg_match('/www\./', $_SERVER['HTTP_HOST'])){
$_SERVER['HTTP_HOST'] = 'www.'.$_SERVER['HTTP_HOST'];
$urlRedirect = wRequest::getDomain().$_SERVER['REQUEST_URI'];
header("Location: ".$urlRedirect, true, 301);
exit;
}

Beim Einsatz von Subdomains sollten Sie besser anstatt der HTTP_HOST Variable die gewünschte (Sub)Domain direkt im Code angeben.

Allgemeines

Ein häufiger Grund für den Einsatz dieser Umschreibungsregel ist, dass doppelter Inhalt (duplicate content) in Suchmaschinen verhindert werden kann.

  • Passen Sie die Domainangaben an Ihre Domain(s) an!
  • Der Server muss mod_rewrite unterstützen, was Sie bei Ihrem Provider erfragen können!
  • Sofern in einem Unterverzeichnis über eine .htaccess-Datei der Befehl "RewriteEngine ON" gesetzt wird, gilt die Vererbung der im Verzeichnis höher liegenden .htaccess-Datei nicht mehr. Es müssen also in dieser  neuen .htaccess-Datei alle Befehle erneut gesetzt werden (Pfadangaben ggf. anpassen)!