Domainweiterleitung mit .htaccess auf Unterordner

Hallo,

Ich möchte meine Domain von www.beispiel.de weiterleiten in ein Unterverzeichnis /cms. Also von www.beispiel.de auf www.beispiel.de/cms. Das habe ich mit einer .htaccess datein schon hinbekommen, in der sich folgender Code befindet:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.beispiel.de$
RewriteCond %{REQUEST_URI} !^/cms/
RewriteRule ^(.*)$ /cms/$1
Nun geben aber einige Kunden in den Browser nur beispiel.de ein und bekommen einen Fehler, weil die Weiterleitung nicht klappt und im Root-Verzeichnis keine Index.html zu finden ist. Ist es möglich auch beispiel.de auf www.beispiel.de/cms in der .htaccess-Datei weiterzuleiten? Oder gibt es eine bessere Lösung?

Vielen herzlichen Dank!
Heike

Moin,

RewriteCond %{HTTP_HOST} ^www.beispiel.de$
Ist es möglich auch beispiel.de auf www.beispiel.de/cms in der
.htaccess-Datei weiterzuleiten?

Ich würd mal sagen, das selbe Spielchen, nur ohne „www.“!?

Gruß,
-Efchen

Hallo

RewriteCond %{HTTP_HOST} ^www.beispiel.de$

^(www.)?beispiel.de$

RewriteCond %{REQUEST_URI} !^/cms/
RewriteRule ^(.*)$ /cms/$1

Wenn du eine echte Weiterleitung haben willst, pack da noch ein [R] ans Ende

Grüße,
Moritz

Hallo,

Vielen Dank für deine Antwort. Ich habe deinen Vorschlag ausprobiert und bekomme leider immer einen Internal Server Error 500 :frowning:

Soweit ich das ganze nun verstanden habe, müsste ich sämtliche Aufrufe von beispiel.de auf www.beispiel.de weiterleiten um einen double content zu verhindern. Hierfür ist glaube ich folgender Code:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.meineDomain.tld$ [NC]
RewriteRule ^(.*)$ http://www.meineDoamin.de/$1 [R=301,L]

Und zusätzlich dann jede Anfrage von www.beispiel.de auf das Unterverzeichnis weiterleiten. Dazu bräuchte ich folgenden Code:
RewriteEngine on
RewriteCond %{REQUEST_URI} !cms/
RewriteRule ^(.*)$ /cms/$1

Wenn ich beide kombiniere, bekomme ich auch einen 500 und im Browser taucht die Adresse: www.beispiel.de/cms// (Achtung mit doppeltem Schrägstrich) auf.
Weiß jemand weiter?
Vielen Dank nochmal für eure Hilfe!

Grüße
Heike

Hallo,

Vielen Dank für deine Antwort. Ich habe deinen Vorschlag
ausprobiert und bekomme leider immer einen Internal Server
Error 500 :frowning:

Dann solltest du die in error.log-Datei schauen, dort steht drin, was schief gelaufen ist.

Grüße,
Moritz

warum nimmst du nicht eine HTML weiterleitung? geht viel einfacher.

Content sind die sekunden die verstrichen werden sollen bis zur weiterleitung und das URL erklärt sich von selbst. nun lege diesen code Als index.html in dein Root. schon währst du fertig. geben sie jetzt nur die Adresse ein lädt er diese datei und leitet auf die seite die hinter URL steht weiter

MFG Daniel

p.s. der code für die .htaccess weiss ich auch :smiley:

Moin,

das macht er sicher nicht, weil es dabei keine Garantie gibt, dass das funktioniert. Immerhin passiert das auf Browserseite und nicht auf Serverseite.

Gruß,
-Efchen

das macht er sicher nicht, weil es dabei keine Garantie gibt,
dass das funktioniert. Immerhin passiert das auf Browserseite
und nicht auf Serverseite.

Funktioniert zu 100%. Wenn du den Code in eine HTML datei schreibst und ihn in das Rootverzeichniss packst, wird die index.html aufgerufen wenn beispiel.de eingegeben wird. Der HTML code sorgt dafür das die Seite sich neulädt aber mit dem url beispiel.de/cms oder was du auch für eine adresse haben willst.

Auf meiner Website seit Jahren erfolgreich im einsatz.

Gruss Daniel

Guten Tag,

Ich habs nun wie folgt gelöst:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.beispiel.de$ [NC]
RewriteRule ^(.*)$ http://www.beispiel.de/$1 [R=301]
RewriteRule ^/?$ /cms/ [R=permanent]

ob das die beste bzw. schönste Art ist, weiß ich nicht, aber sie funktioniert…
Vielen Dank für die Vorschläge!

Dann lies mal das: http://blog.antikoerperchen.de/beitrag/38/gute-weite…

Schönen Abend,
-Efchen