Wie kann ich ServerAlias ​​auf den jeweiligen Servernamen umleiten?


8

Ich möchte alle example.org auf www.example.org umleiten. Das folgende Beispiel macht genau das, aber es hat viel Rauschen und ist daher schwer zu warten und fehleranfällig:

<VirtualHost 192.0.2.123:80>
        ServerName      example.org
        RedirectPermanent       /               http://www.example.org
</VirtualHost>
<VirtualHost 192.0.2.123:80>
        ServerName      www.example.org
        DocumentRoot    /usr/local/www/example
</VirtualHost>

Wissen Sie zufällig, ob es für das Ganze oben eine kürzere Version gibt?

So etwas wie diese Pseudokonfiguration :

<VirtualHost 192.0.2.123:80>
        ServerName      www.example.org
        ServerAlias     example.org
#       Redirect-Every-ServerAlias-To-ServerName
        DocumentRoot    /usr/local/www/example
</VirtualHost>

Auf diese Weise müsste ich nur jede Subdomain bereitstellen, unter der umgeleitet werden soll ServerAlias?


Sie können mod_rewrite verwenden, um alle Anfragen an example.org an www.example.org umzuleiten - nur 2 Zeilen (also 3 einschließlich der Engine-Aktivierungsanweisung).
LazyOne

Antworten:


13

Verwenden Sie mod_rewrite, ungefähr so:

RewriteEngine On
RewriteCond %{HTTP_HOST}  !^www.example.org [nocase]
RewriteRule ^(.*)$        http://www.example.org$1 [last,redirect=301]

1
Eine kleine Verbesserung besteht darin,! ^ Www.example.org in Ihrer RewriteCond zu verwenden, damit es weiterhin funktioniert, unabhängig davon, wie viele ServerAlias-Anweisungen Ihr vhost hat.
Ladadadada

Sie können auch %{SERVER_NAME}in den Ausdrücken
OrangeDog

0
<VirtualHost *:80>
    ServerName www.example.org
    DocumentRoot /usr/local/www/example
</VirtualHost>

<VirtualHost *:80>
    ServerName example.org
    ServerAlias *.example.org another.org *.another.org
    Redirect 301 / http://www.example.org/
</VirtualHost>

Stellen Sie sicher, dass Sie sie in die richtige Reihenfolge bringen, www zuerst


1
Ihre Antwort ist im Wesentlichen dieselbe wie das Beispiel, das er für das gegeben hat, was er gerade tut.
Ladadadada
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.