Wie entferne ich WWW für alle Hosts in Apache?

Wie entferne ich WWW für alle Hosts in Apache?

Ich habe SO-Themen zu diesem Thema gelesen. Sie gelten jedoch nur für einzelne Hosts.

Ich möchte eine einheitliche Regel für alle Server für aktuelle und zukünftige Domänen haben.

Grundsätzlich möchte ich „www“ aus allen Anfragen entfernen und nur den Domänennamen zugänglich lassen.

Apache unterstützt auch HTTPS. Wie lässt sich dies also auf alle anwenden?

Danke!

http://www.example.com >> http://example.com
https://www.example.com >> https://example.com

Maria

Antwort1

Was Sie beschreiben, ist mit mod_rewritebis zu einem gewissen Grad (scheinbar) unmöglich.

Konfigurationen aus mehreren „Ebenen“ werden in nicht gestapelt mod_rewrite, daher wird ein in der Hauptserverkonfiguration definierter Regelsatz nicht automatisch importiert und auf eine Anforderung angewendet, die an einen delegiert wird <VirtualHost>.

Angenommen jedoch, Sie müssen sie <VirtualHost>sowieso irgendwann zuweisen und möchten keine weiteren Regeln im <VirtualHost>Textkörper haben (wenn sie sich in .htaccessoder einem <Directory>Abschnitt befinden, ist das in Ordnung), können Sie mit Folgendem herumspielen.

In der Hauptkonfiguration nehmen wir meineAntwort auf diese verwandte Frageund wende es an:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTPS}s ^on(s)|off
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L]

Dann können wir es in jedem unserer <VirtualHost>Abschnitte "importieren" mit demRewriteOptionsRichtlinie:

RewriteEngine On
RewriteOptions inherit

Alternativ können Sie den Regelsatz natürlich auch einfach <VirtualHost>komplett kopieren, dadurch bleibt der jeweilige Regelsatz jedoch an einem einzigen Ort.

Beachten Sie, dass der Grund, warum ich in diesem Fall vorschlage, keine zusätzlichen Regeln <VirtualHost>direkt zu haben, darin liegt, dass die geerbten Regeln enthalten sindnachwas auch immer Sie auf der aktuellen Konfigurationsebene definiert haben, was unbeabsichtigte Nebenwirkungen haben könnte.

verwandte Informationen