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;
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.