So leiten Sie www mit Apache auf Ubuntu 14.04 auf Nicht-www um

Einführung

Wenn Ihre Website oder Anwendung hinter einer Domain ausgeführt wird, ist es häufig wünschenswert, Ihren Benutzern auch den Zugriff über den einfachen Domainnamen und die Unterdomäne * www * zu ermöglichen. Das heißt, sie sollten in der Lage sein, Ihre Domain mit oder ohne das Präfix "http: // www. [Www.]" Zu besuchen, z. + example.com + oder + www.example.com + in einem Webbrowser und mit dem gleichen Inhalt dargestellt werden. Obwohl es eine Vielzahl von Möglichkeiten gibt, dies einzurichten, besteht die beste Lösung aus Gründen der Konsistenz und der Suchmaschinenoptimierung darin, die von Ihnen bevorzugte Domain ("plain" oder "www") auszuwählen und die andere Domain an die bevorzugte Domain weiterzuleiten. Diese Art der Umleitung wird als "Permanente Umleitung" oder "301-Umleitung" bezeichnet und kann einfach eingerichtet werden, indem Sie Ihre DNS-Ressourceneinträge und die Webserver-Software ordnungsgemäß konfigurieren.

In diesem Tutorial erfahren Sie, wie Sie eine WWW-URL zu einer nicht-WWW-URL umleiten, z. + www.example.com + bis + example.com +, mit Apache unter Ubuntu 14.04. Wir zeigen Ihnen auch, wie Sie von einer Nicht-WWW-URL zu http: // www [www] umleiten können. Die CentOS 7-Version dieses Lernprogramms ist unter here verfügbar.

Wenn Sie diese Art der Weiterleitung mit Nginx als Webserver ausführen möchten, sollten Sie stattdessen diesem Lernprogramm folgen: https://www.digitalocean.com/community/tutorials/how-to-redirect-www-to-non-www -with-nginx-on-ubuntu-14-04 [So leiten Sie mit Nginx unter Ubuntu 14.04 www auf nicht-www um].

Voraussetzungen

In diesem Lernprogramm wird davon ausgegangen, dass Sie über Superuser-Berechtigungen verfügen, d. H. + sudo + oder root auf dem Server, auf dem Apache ausgeführt wird. Wenn Sie das noch nicht eingerichtet haben, folgen Sie diesem Tutorial: Initial Server Setup unter Ubuntu 14.04 .

Es wird davon ausgegangen, dass Sie Apache installiert haben. Wenn Sie dies noch nicht eingerichtet haben, finden Sie unter Apache tag mehrere Tutorials zu diesem Thema.

Sie müssen in der Lage sein, dem DNS, das Ihre Domain verwaltet, Einträge hinzuzufügen. Wenn Sie noch keine Domain haben, können Sie eine von einem Domain-Registrar erwerben und diese mit dem DNS des Registrars oder https://www.digitalocean.com/community/tutorials/how-to-point-to-digitalocean- verwalten. Nameserver-von-Common-Domain-Registraren [DNS von DigitalOcean]. In diesem Tutorial verwenden wir DigitalOcean DNS, um die erforderlichen Datensätze zu erstellen.

Beginnen wir mit der Konfiguration Ihrer DNS-Einträge.

DNS-Einträge konfigurieren

Um die gewünschte Weiterleitung von "+ www.example.com " zu " example.com +" oder umgekehrt einzurichten, müssen Sie für jeden Namen einen * A-Datensatz * haben.

Öffnen Sie alles, was Sie zur Verwaltung Ihres DNS verwenden. In unserem Beispiel wird DigitalOcean DNS verwendet.

Wenn noch kein Domäneneintrag (auch als Zoneneintrag bezeichnet) vorhanden ist, erstellen Sie jetzt einen. Der * Hostname * sollte Ihre Domain sein, z. + example.com +, und die IP-Adresse sollte auf die öffentliche IP-Adresse Ihres Apache-Servers eingestellt sein. Dadurch wird automatisch ein A-Eintrag erstellt, der Ihre Domain auf die von Ihnen angegebene IP-Adresse verweist. Wenn Sie ein anderes System zum Verwalten Ihrer Domain verwenden, müssen Sie dies möglicherweise manuell hinzufügen.

Fügen Sie als Nächstes einen weiteren A-Eintrag mit "www" als Hostnamen hinzu (oder "http://www.example.com [www.example.com]", wenn die partielle Unterdomäne nicht funktioniert), und geben Sie dieselbe IP-Adresse an.

Wenn Sie beide Datensätze erstellt haben, sollte dies ungefähr so ​​aussehen:

Jetzt sollte Ihr Server über die Domain www und non-www erreichbar sein, aber wir müssen noch die Umleitung einrichten. Das machen wir jetzt.

Rewrite-Modul aktivieren

Um die 301-Umleitung durchzuführen, verwenden wir das Apache * mod_rewrite * - oder Rewrite-Modul. Auf diese Weise wird sichergestellt, dass Ihre Benutzer mit oder ohne das Präfix * www. * Auf Ihre Website zugreifen und zu der von Ihnen bevorzugten Domain umgeleitet werden.

Aktivieren Sie zuerst das Modul mod_rewrite mit diesem Befehl:

sudo a2enmod rewrite

Wenn das Rewrite-Modul aktiviert ist, können wir Apache mit Umleitungsregeln konfigurieren, indem wir "+ .htaccess +" - Dateien verwenden.

Aktivieren Sie .htaccess-Dateien

Öffnen Sie Ihre Apache-Konfigurationsdatei zum Bearbeiten. Unter Ubuntu befindet sich die Standardkonfigurationsdatei unter "+ / etc / apache2 / sites-enabled / 000-default.conf +". Daher verwenden wir diese in unserem Beispiel:

sudo vi /etc/apache2/sites-enabled/000-default.conf

Suchen Sie den DocumentRoot Ihrer Site und notieren Sie ihn. Standardmäßig ist es "+ / var / www / html +", daher werden wir das in unserer Beispielkonfiguration verwenden.

Fügen Sie der Konfiguration die folgende Directory-Direktive hinzu und stellen Sie sicher, dass der markierte Teil durch DocumentRoot ersetzt wird:

Zur Apache-Konfiguration hinzufügen

<Directory >
   Options Indexes FollowSymLinks MultiViews
   AllowOverride All
   Order allow,deny
   allow from all
</Directory>

Speichern und schließen.

Starten Sie jetzt Apache neu, damit die Änderung wirksam wird:

sudo service apache2 restart

Apache ist jetzt so konfiguriert, dass es die Datei "+ .htaccess" liest, die sich an einer beliebigen Stelle im Verzeichnis "+ / var / www / html" befindet. Fügen wir jetzt unsere Rewrite-Regeln hinzu.

Rewrite-Modul konfigurieren

Wie bereits erwähnt, konfigurieren wir das Rewrite-Modul mit einer + .htaccess + -Datei.

Wechseln Sie in Ihr Document Root-Verzeichnis, in unserem Fall "+ / var / www / html":

cd /var/www/html

Öffnen Sie nun + .htaccess + zum Bearbeiten:

sudo vi .htaccess

Wenn Sie die Datei zuvor noch nicht erstellt haben, ist sie natürlich leer. Verwenden Sie je nach Richtung, in die Sie umleiten möchten, eine der folgenden Optionen.

Option 1: Leiten Sie www zu Nicht-www um

Wenn Sie Benutzer von www zu einer normalen, nicht www-fähigen Domain umleiten möchten, fügen Sie diese Konfiguration ein:

htaccess - www to non-www
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Speichern und schließen. Die Änderungen sollten sofort wirksam werden. Beachten Sie, dass Sie bei Verwendung von HTTPS "http" in der Zeile "+ RewriteRule +" auf "https" aktualisieren sollten.

Verwenden Sie diesen Befehl, um sicherzustellen, dass die Nicht-WWW-Domäne zur WWW-Domäne umleitet (ersetzen Sie den hervorgehobenen Teil durch Ihre tatsächliche Domäne):

curl -I http://www.

Sie sollten eine "+301 dauerhaft verschoben +" - Antwort erhalten, die den Nicht-WWW-Umleitungsort wie folgt anzeigt:

Output:HTTP/1.1 301 Moved Permanently
Date: Fri, 01 May 2015 21:18:33 GMT
Server: Apache/2.4.7 (Ubuntu)
Location: http:///
Content-Type: text/html; charset=iso-8859-1

Natürlich sollten Sie auf Ihre Domain in einem Webbrowser (www und nicht www) zugreifen, um sicherzugehen.

Option 2: Leiten Sie Nicht-WWW zu WWW um

Wenn Sie Benutzer von einer normalen Domain, die kein WWW-Domain ist, zu einer WWW-Domain umleiten möchten, fügen Sie diese Konfiguration ein:

htaccess - non-www to www
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Speichern und schließen. Die Änderungen sollten sofort wirksam werden. Beachten Sie, dass Sie bei Verwendung von HTTPS "http" in der Zeile "+ RewriteRule +" auf "https" aktualisieren sollten.

Verwenden Sie diesen Befehl, um sicherzustellen, dass die Nicht-WWW-Domäne zur WWW-Domäne umleitet (ersetzen Sie den hervorgehobenen Teil durch Ihre tatsächliche Domäne):

curl -I http://

Sie sollten eine "+301 dauerhaft verschoben +" - Antwort erhalten, die den WWW-Umleitungsort wie folgt anzeigt:

Output:HTTP/1.1 301 Moved Permanently
Date: Fri, 01 May 2015 21:18:33 GMT
Server: Apache/2.4.7 (Ubuntu)
Location: http://www./
Content-Type: text/html; charset=iso-8859-1

Natürlich sollten Sie auf Ihre Domain in einem Webbrowser (www und nicht www) zugreifen, um sicherzugehen.

Fazit

Das ist es! Ihre Apache-Umleitung ist jetzt ordnungsgemäß konfiguriert und Ihre Benutzer können über Ihre Nicht-WWW- und WWW-Domain auf Ihren Webserver zugreifen.

Wenn Sie mehr über * mod_rewrite *, die Apache-Funktion, mit der wir die Umleitung implementiert haben, erfahren möchten, lesen Sie dieses Tutorial: https://www.digitalocean.com/community/tutorials/how-to-set- up-mod_rewrite [So richten Sie Mod_Rewrite ein].

Related