.htaccess Redirect Permanent mit allen Unterordnern

DaMoN1993

Commander
Registriert
Dez. 2006
Beiträge
2.118
Hallo Forum,
Ich versuche gerade, über die .htaccess eine Domain-Umleitung durchzuführen. Sie soll 2 Sachen bezwecken:
1. *.domain.tld soll auf www.domain.tld umgeleitet werden (funktioniert)
2. die Unterordnerstruktur soll erhalten bleiben beim Umleiten (funktioniert nicht)

Die einfachste Lösung zum www-redirect ist
Code:
Redirect permanent / http://www.domain.tld

wird jetzt domain.tld/test/test aufgerufen, wird dies weitergeleitet zu www.domain.tldtest/test (ein slash fehlt). Einfach ein / in der htaccess hinten dran zu hängen funktioniert natürlich nicht :D
Also werde ich mindestens schonmal regexp brauchen, wo mit ich mich fast gar nicht auskenne.
Der Redirect soll auf jeden fall mit dem HTTP-Header 301 erfolgen, wenn möglich sollen alle möglichen, auch nicht-existente unterordner im Aufruf erhalten bleiben.
Wenn ein nutzer domain.tld/bli/bla/blubb/test aufruft, soll er auch einfach zu www.domain.tld/bli/bla/blubb/test weitergeleitet werden. Falls überhaupt möglich.

Kann mir da wer helfen? Über google habe ich jetzt schon einige Codes gefunden, jedoch bleibt immer das gleiche Problem, dass der / nach tld fehlt.
PS: Redirects bleiben server-intern.

MfG
Damon
 
Code:
RewriteEngine On
RewriteCond %{http_host} ^domain.tld [NC]
RewriteRule ^(.*)$ http://www.domain.tld/$1 [R=301,L]
 
Zuletzt bearbeitet: (falscher code)
Danke ihr beiden, ich habe jetzt Moodle's Lösung genommen, funktioniert Tadellos.
...nach einer halben Stunde, wenn einem endlich einfällt, dass man seinen browser-cache mal löschen könnte :evillol:

MfG
Damon
 
edit:
Einen Denkfehler habe ich schon einmal behoben. Bleibt noch eine Sache zu lösen:
a.example.com/y
soll umgeleitet werden zu:
b.example.com/x/y

a.example.com = b.example.com
Beide domains führen in den gleichen Ordner (einen Wordpress-Blog).
man soll nur unter a.example.com direkt auf /x zugreifen.
Code:
RewriteCond %{HTTP_HOST} ^a.example.com$
RewriteCond %{HTTP_REFERER} !^a.example.com$
RewriteRule ^(.*)$ http://a.example.com/x/$1 [L,NC]

Also, die RewriteRule soll in jedem fall nur ausgeführt werden, wenn ich auch auf a.example.com zugreife.
Würde dies allein dort stehen, würde ich auf den neuen Pfad verwiesen, die HTACCESS wieder aufgerufen, und ich würde weiter verwiesen. Damit das ganze nicht endlos rekusiert, soll die rewrite rule nur ausgeführt werden, wenn der referer nicht a.example.com ist. Schickt mich die Rewrite rule an den anderen pfad weiter, sollte sie also nicht noch einmal ausgeführt werden. Wird sie aber... Was mache ich falsch?

(a.example.com soll allerdings wenn möglich erhalten bleiben als url, nicht a.example.com/x/)

MfG
Damon
 
Zuletzt bearbeitet:
Zurück
Oben