Mod_Rewrite: domain.xy auf Unterverzeichnis umleiten

Apache, Lighttpd, nginx, Cherokee
Post Reply
fossy
Posts: 24
Joined: 2003-09-06 10:40
Location: Essen, NRW
 

Mod_Rewrite: domain.xy auf Unterverzeichnis umleiten

Post by fossy »

Hallo,

betreibe eine Server, auf den mehrere Domains verweisen. Moechte eine bestimmte Domain auf ein Unterverzeichnis weiterleiten.
z.B. :

wenn domain.xy aufgerufen wird, dann rufe die Dateien aus Verzeichnis /home/peter/beispiel/ ab.

Das Ganze moechte ich mit einer Rewrite - Rule in einer .htaccess Datei machen, also keine Virual-Host Konfiguration in httpd.conf

.htaccess:
Options Includes +ExecCGI +FollowSymLinks +Includes +MultiViews
RewriteEngine on
RewriteRule [...]

und wie gehts hier weiter?

Danke und Gruss
Fossy
wirsing
Posts: 604
Joined: 2002-11-20 21:32
Location: Vaihingen und Karlsruhe
 

Re: Mod_Rewrite: domain.xy auf Unterverzeichnis umleiten

Post by wirsing »

Du liest dir die Apache-Doku zu mod_rewrite, insbesondere zu RewriteRule und RewriteCond durch.
Für Apache 1.3: http://httpd.apache.org/docs/mod/mod_rewrite.html
Für Apache 2.0: http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html
Achte bei RewriteCond auf die Variable HTTP_HOST.
Ansonsten könntest du dir auch mod_vhost_alias ansehen.
fossy
Posts: 24
Joined: 2003-09-06 10:40
Location: Essen, NRW
 

Re: Mod_Rewrite: domain.xy auf Unterverzeichnis umleiten

Post by fossy »

wirsing wrote:Du liest dir die Apache-Doku zu mod_rewrite, insbesondere zu RewriteRule und RewriteCond durch.
Für Apache 1.3: http://httpd.apache.org/docs/mod/mod_rewrite.html
Für Apache 2.0: http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html
Achte bei RewriteCond auf die Variable HTTP_HOST.
Ansonsten könntest du dir auch mod_vhost_alias ansehen.
Hallo,

habe da noch so meine Problemchen mit.
#############################
RewriteEngine on
RewriteCond %{HTTP_HOST} ^217.160.xxx.xxx$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^217.160.xxx.xxx(.*) /dir/subdir/$1$2
#############################
Dieser Code muesste doch alle Zugriffe auf die IP 217.160.xxx.xxx auf das Verzeichnis /dir/subdir umleiten. Das geht leider nicht - warum eigenltich nicht?

Gruss
Fossy
fossy
Posts: 24
Joined: 2003-09-06 10:40
Location: Essen, NRW
 

Re: Mod_Rewrite: domain.xy auf Unterverzeichnis umleiten

Post by fossy »

fossy wrote: habe da noch so meine Problemchen mit.
#############################
RewriteEngine on
RewriteCond %{HTTP_HOST} ^217.160.xxx.xxx$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^217.160.xxx.xxx(.*) /dir/subdir/$1$2
#############################
Dieser Code muesste doch alle Zugriffe auf die IP 217.160.xxx.xxx auf das Verzeichnis /dir/subdir umleiten. Das geht leider nicht - warum eigenltich nicht?
Mit folgendem Code wird umgeleitet - es entsteht aber so etwas wie eine schleife, da die umgeschriebene domain ja wieder auf das Suchmuster passt:
RewriteCond %{HTTP_HOST} ^meinedomain.com$
RewriteRule ^(.*)$ /dir/subdir/$1

Kann man diese Schleife irgendwie verhindern?

Gruss
Fossy
wirsing
Posts: 604
Joined: 2002-11-20 21:32
Location: Vaihingen und Karlsruhe
 

Re: Mod_Rewrite: domain.xy auf Unterverzeichnis umleiten

Post by wirsing »

Da du dir jetzt schon mal Gedanken darüber gemacht hast, meine Idee:

Code: Select all

RewriteEngine On
RewriteRule ^/(.*)$ /%{HTTP_HOST}/$1 [C]
RewriteRule ^/(www.)?(.*)$ /$2 [L]
In der zweiten Zeile wird dann eben noch ein www. am Anfang herausgefiltert, da Leute sowohl mit als auch ohne www auf die Seite kommen sollten.

Die verschiedenen Ordner für die Domains musst du dann im DocumentRoot anlegen. Eine Erweiterung wäre dann, noch zu überprüfen, ob der Ordner existiert und andernfalls auf einen Standard-Ordner umzuleiten.
fossy
Posts: 24
Joined: 2003-09-06 10:40
Location: Essen, NRW
 

Re: Mod_Rewrite: domain.xy auf Unterverzeichnis umleiten

Post by fossy »

wirsing wrote:Da du dir jetzt schon mal Gedanken darüber gemacht hast, meine Idee:

Code: Select all

RewriteEngine On
RewriteRule ^/(.*)$ /%{HTTP_HOST}/$1 [C]
RewriteRule ^/(www.)?(.*)$ /$2 [L]
In der zweiten Zeile wird dann eben noch ein www. am Anfang herausgefiltert, da Leute sowohl mit als auch ohne www auf die Seite kommen sollten.

Die verschiedenen Ordner für die Domains musst du dann im DocumentRoot anlegen. Eine Erweiterung wäre dann, noch zu überprüfen, ob der Ordner existiert und andernfalls auf einen Standard-Ordner umzuleiten.
Aber es geht ja schon ohne http://www.* nicht! Error_log sagt:
File name too long: access to /dir/subdir/meinedomain.comdir/subdir/meinedomain.comdir/subdir/meinedomain.com [...] failed
Bei folgender Anweisung in .htaccess:
RewriteCond %{HTTP_HOST} ^meinedomain.com$
RewriteRule ^(.*)$ /dir/subdir/$1

Oder muss in die RewriteRule jetzt auch noch mal der Domainname. Scheixxe, jetzt bin ich total durcheinander!

Gruss
Fossy
wirsing
Posts: 604
Joined: 2002-11-20 21:32
Location: Vaihingen und Karlsruhe
 

Re: Mod_Rewrite: domain.xy auf Unterverzeichnis umleiten

Post by wirsing »

Schreib mal das von mir in die httpd.conf außerhalb von igendwelchen <Directory>- oder <IfDefined>- Blöcken und starte dann den Server neu (apachectl graceful)
fossy
Posts: 24
Joined: 2003-09-06 10:40
Location: Essen, NRW
 

Re: Mod_Rewrite: domain.xy auf Unterverzeichnis umleiten

Post by fossy »

wirsing wrote:Schreib mal das von mir in die httpd.conf außerhalb von igendwelchen <Directory>- oder <IfDefined>- Blöcken und starte dann den Server neu (apachectl graceful)
hallo,

ich moechte die anweisung aber in .htaccess unterbringen, nicht in httpd.conf

folgende Anweisung scheint zu funktionieren:
RewriteCond %{HTTP_HOST} ^meinedomain.* [OR]
RewriteCond %{HTTP_HOST} ^www.meinedomain.*
RewriteRule ^(.*)$ /dir/subdir/$1

das problem aber ist, dass, wie schon in einem meiner letzten postings erwaehnt, eine art schleife erzeugt wird. das error_log sagt dann folgendes:
File name too long: access to /dir/subdir/dir/subdir/dir/subdir/dir/subdir/dir/subdir/dir/subdir/dir/subdir/dir/subdir/dir/subdir/dir/subdir [...] failed
Post Reply