Seite 1 von 1
mod_rewrite: Domain auf Ordner umbiegen
Verfasst: 13.10.2004, 14:24
von mcchaos
Hallo!
Ich würde gerne eine bestimmte Domain des Paketes auf einen Order "umbiegen".
Bsp:
www.domain.de/test.htm -> Es soll die Datei
www.domain.de/ordner/test.htm dargestellt werden.
Ich habe (u.a.) versucht:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domain\.de$ [NC]
RewriteRule (.*) /ordner/$1 [L]
... geht abber net (Apache sagt: Internal Server Error).
Hilfe!
Verfasst:
von
SEO Consulting bei
ABAKUS Internet Marketing Erfahrung seit 2002
- persönliche Betreuung
- individuelle Beratung
- kompetente Umsetzung
Jetzt anfragen:
0511 / 300325-0.
Verfasst: 13.10.2004, 15:56
von Michael
Habe es jetzt nicht extra getestet, aber etwa so sollte es gehen
RewriteCond %{REQUEST_URI} ^/([^.]*).html$
RewriteRule ^(.*) /ordner/%1.html [L]
Gruß
Michael
Verfasst: 14.10.2004, 00:00
von zebby
so funktioniert es sicher
RewriteCond %{HTTP_HOST} ^[a-z]+\.domain\.de$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^(.*)\.domain\.de ordner
Verfasst: 14.10.2004, 19:34
von Caterham
.. geht abber net (Apache sagt: Internal Server Error).
Weil du 'ne Schleife drinn' hast -> deine Regel wird auch dann wieder ausgeführt, wenn sie schon einmal ausfgeführt wurde.
ist ohne Ausschluss ist immer wahr.
hostest/routest du mehere Domains auf ein Verzeichnis? Sonst kannst du dir das nämlich mit dem HTTP Host sparen.
Code: Alles auswählen
RewriteEngine On
#fängt nicht mit ordner an und es folgen 0 oder beliebig viele Zeichen
RewriteRule !^ordner.*$ - [C]
#nur, wenn das von der Domain ist
RewriteCond %{HTTP_HOST} ^[a-z]*\.?domain\.de$ [NC]
#deine Regel, letzte Regel; wird nur ausgeführt, wenn RewriteRule !^.. von oben wahr ist (also ordner nicht angefordert)
RewriteRule (.*) /ordner/$1 [L]
per ^[a-z]*\.?domain\.de$ ist neben
www.domain.de auch domain.de erfasst, lege dich aber auf eins fest:
Standard-Domain definieren
Die Regel von Michael funktioniert, wenn du folgendes notierst:
Code: Alles auswählen
#der Slash muss auch ausgeschlossen werden, sonst ist /ordner/test.html ebenfalls wahr
RewriteCond %{REQUEST_URI} ^/([^./]*)\.html$
RewriteRule ^(.*) /ordner/%1.html [L]
Achtung - bitte nicht verwechseln im per-dir rewriting (htaccess): Request URI mit führendem Slash, RewriteRule ^[...] ohne führenden Slash
Code: Alles auswählen
%{REQUEST_URI} ^/ordner/test\.html$
RewriteRule ^ordner/test\.html
#ABER NICHT
RewriteRule ^/ordner/test\.html
Gruß
Robert
Verfasst: 16.10.2004, 11:25
von mcchaos
Danke für die Antworten, habs hinbekommen!
Verfasst: 20.10.2004, 10:56
von Michael
Tatsache. Mein Regulärer Ausdruck kann nicht klappen.
Sorry.
Man sollte doch immer alles testen bevor man es weitergibt.

Verfasst: 20.10.2004, 11:05
von bull
Es handelt sich m.E. hier gar nicht um Umleiten bei Deiner ersten Fassung, da ein 200er wohl zurückgegeben wird. Schau mal Deinen HTTP-Header an mit SamSpade o.ä.
Code: Alles auswählen
RewriteEngine On
RewriteCond %{HTTP_HOST} \.domain\.de [NC]
RewriteCond %{REQUEST_URI} !ordner [NC] # nur falls domain==zieldomain
RewriteRule (.*) http://zieldomain/ordner/$1 [R=301,L]
sollte aber eigentlich schon funktionieren.
Hinweis: Länderkennung nicht mit "$" terminieren, da bei optionaler Portangabe die Regel nicht greift.