Wunderlampe Rewrite-Engine

{{ post.author.node.name }}
Autor:

Philipp Zeder

Kategorie:

in

Entwicklung & Performance

Veröffentlicht am 07. Sep. 2011

Mächtig ist sie, die Rewrite-Engine des Apache Webservers. Und dementsprechend auch nicht so einfach zu verstehen.

Wunderlampe Rewrite-Engine

Bild: sxc.hu

Damit Sie sich nicht mit dem Lernen von Rewrite-Befehlen herumschlagen müssen, stellen wir Ihnen heute die drei Anweisungen vor, die unsere Supporter am häufigsten anwenden.

Die Anweisungen werden jeweils in einer Textdatei hinterlegt, die den Namen .htaccess trägt und sich im Verzeichnis public_html befindet.

Website aus einem Unterordner aufrufen

Damit die gewünschte Website aus einem Unterordner aufgerufen wird, tragen Sie folgende Anweisung in die Datei .htaccess ein:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^ihredomain.ch$ [OR]
RewriteCond %{HTTP_HOST} ^www.ihredomain.ch$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /unterordner/$1 [PT,L,QSA]

Und damit die Weiterleitung nicht in einer ewigen Schlaufe endet, fügen Sie folgende Anweisung in die .htaccess Datei im entsprechenden Unterordner ein:

RewriteEngine off

Domain A auf Domain B zeigen lassen

Falls Sie den Inhalt von Domain B anzeigen lassen möchten, ohne dass sich die URL in der Adresszeile ändert, verwenden Sie folgende Anweisung in Ihrer .htaccess-Datei:

RewriteEngine On
RewriteRule ^(.*)$ https://www.ihredomain.ch/$1 [P,L]

Anfragen ohne www. umleiten

Ihre Website ist in der Regel sowohl mit www. als auch ohne diesen Zusatz erreichbar. Damit Suchmaschinen erkennen, dass es sich bei beiden Varianten um den gleichen Inhalt handelt, können Sie Anfragen an Ihre Domain mit folgendem Befehl in der Datei .htaccess umleiten:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^ihredomain\.ch$ [NC]
RewriteRule ^(.*)$ https://www.ihredomain.ch/$1 [R=301,QSA,L]

Haben Sie Fragen zu diesen Anweisungen? Oder eine eigene Regel, die Sie immer wieder verwenden? Dann hinterlassen Sie uns doch einen Kommentar. Wir freuen uns.

Beteilige dich an der Diskussion

4 Kommentare

{{comment.author.node.name}}
Marco 05. Apr 2016 21:22

Besten Dank für die Infos. Leider kriege ich folgendes nicht hin: Wenn ein Aufruf über die Haupt-Domain in einen Unterordner der Subdomain erfolgt, so soll er auf die Subdomain weitergeleitet werden:

domain.tld/subdomain/... => subdomain.domain.tld/...

Dafür habe ich folgende Regeln eingebaut (soll auch auf meinem Computer funktionieren, deshalb localhost-Regel):

RewriteCond %{HTTP_HOST} !localhost
RewriteCond %{REQUEST_URI} ^/subdomain/
RewriteRule ^subdomain(.*)$ https://subdomain.domain.tld$1 [R=301,L]

Habt Ihr eine Idee? Vielen Dank!

{{comment.author.node.name}}
Philipp Zeder cyon
06. Apr 2016 17:11

Hi Marco

Bitte versuche es mal mit folgender Anweisung:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)meine-deine-seine-domain.com
RewriteRule ^mydir/(.*)$ http://subdom.meine-deine-seine-domain.com/$1 [L,R=301]
{{comment.author.node.name}}
Dominik 29. Mar 2012 09:05

Danke für den nützlichen Beitrag.

Eine Frage habe ich noch. Wiso wird beim umleiten eines Directories (1. Beispiel) nicht die gleiche Ergänzung wie im 3. Beispiel benutzt? ([PT,L,QSA] vs. [R=301,QSA,L])

Ist es gerade für die Suchmaschinenoptimierung nicht besser ein R=301 (pemanent redirect) zu haben?

Gruss
Dominik

{{comment.author.node.name}}
Philipp Zeder cyon
29. Mar 2012 09:58

Im ersten Beispiel ist für den Besucher bzw. die Suchmaschine nicht ersichtlich, dass der Inhalt eigentlich aus einem Unterordner aufgerufen wird. Entsprechend ist auch keine 301 Weiterleitung nötig, da sich der Inhalt ja von aussen gesehen bereits am richtigen bzw. bekannten Ort befindet.