Redirect zwischen nicht-www.-URL und www.-URL
Meistens möchte man seine öffentliche Website als Subdomain per www.-URL abbilden. Um sicherzustellen, dass Besucher die die Root-Domain (ohne „www“) trotzdem auf der www.-URL landen, kann ein entsprechender Redirect eingebaut werden. Alternativ natürlich umgekehrt – man möchte nur die Root-Domain erreichen und Besuchern, die die www.-URL aufrufen, dorthin umleiten.
Internet Information Services
Im IIS funktioniert dies per URL-Rewrite. Einerseits ist es möglich, dies über den IIS Manager einzurichten, andererseits kann auch die entsprechende web.config
Datei im IIS Verzeichnis manuell angepasst werden,
Redirect von nicht-www.-URL auf www.-URL
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect non-WWW to WWW" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern="^([a-z]+)[.]com$" ignoreCase="true" /> </conditions> <action type="Redirect" redirectType="Permanent" url="http://www.{C:0}/{R:0}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Im <add input>-Tag ist darauf zu achten, dass am Ende des pattern-Strings der richtige Domain Suffix eingetragen wird. Im obigen Beispiel ist die Domain eine .com-Domain. Bei anderen Suffixes ist der String entsprechend anzupassen (z.B.: [.]de$, [.]org$, etc.)
Redirect von www.-URL auf nicht-www.-URL
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect WWW to non-WWW" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern="^www[.](.+)" ignoreCase="true" /> </conditions> <action type="Redirect" redirectType="Permanent" url="http://{C:1}/{R:0}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Apache
Unter Apache gibt es mehrere Möglichkeiten, einen Redirect zu realisieren. Die erste Methode ist die Nutzung von 2 virtuellen Hosts (einen nicht-www-Host und einen www-Host), die zweite Methode beschreibt den Redirect über die Rewrite Engine. Hierzu muss das mod_rewrite Modul in Apache aktiviert und die .htaccess Datei im Root Verzeichnis der Website angepasst werden.
Redirect von nicht-www.-URL auf www.-URL
Methode 1
<VirtualHost *:80> ServerName <your>.<domain> Redirect 301 / http://www.<your>.<domain> </VirtualHost> <VirtualHost *:80> ServerName www.<your>.<domain> </VirtualHost>
Methode 2
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Redirect von www.-URL auf nicht-www.-URL
Methode 1
<VirtualHost *:80> ServerName www.<your>.<domain> Redirect 301 / http://<your>.<domain> </VirtualHost> <VirtualHost *:80> ServerName <your>.<domain> </VirtualHost>
Methode 2
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Nginx
Unter Nginx funktioniert der Redirect über die vhost Einstellungen (für eine Domain), bzw. in den http-Direktiven der nginx.conf
Datei (für alle Domains).
Redirect von nicht-www.-URL auf www.-URL
Redirect für eine Domain
server { listen 80; server_name <your>.<domain>; return 301 $scheme://www.<your>.<domain>$request_uri; } server { listen 80; server_name www.<your>.<domain>; }
Redirect für alle Domains
server { server_name "~^(?!www\.).*" ; return 301 $scheme://www.$host$request_uri; }
Redirect von www.-URL auf nicht-www.-URL
Redirect für eine Domain
server { listen 80; server_name www.<your>.<domain>; return 301 $scheme://<your>.<domain>$request_uri; } server { listen 80; server_name <your>.<domain>; }
Redirect für alle Domains
server { server_name "~^www\.(.*)" ; return 301 $scheme://$1$request_uri; }