dedlfix: Modrewrite umschreiberegeln

Beitrag lesen

Tach!

Ich weiß nicht welche Vorteile der Hoster gegenüber anderen Hostern hat, aber ich bin nun mal jetzt bei dem Hoster.

Wenn du da solch einen gravierenden Nachteil hast und keine weiteren Vorteile kennst, wüsste ich nicht, was dich da noch hält (außer dem Scheuen des Umzugsaufwands).

Ich kann auch über Confixx auf ein Unterverzeichnis zeigen lassen, aber dann handelt es sich aus irgendeinen Grund um eine 302 Weiterleitung was SEO technisch schlecht ist.

Das kann ich nicht so recht glauben. Allerdings kenne ich Confixx nicht. Nachdem was ich in den online verfügbaren Handbüchern gesehen habe, geht nicht direkt hervor, wie die Verbindung zwischen Domain und Verzeichnis hergestellt wird. Ein 302er Redirect wäre aber die sinnloseste Variante. Bist du sicher, dass als Ziel lediglich /verzeichnis und nicht http://example.com/verzeichnis angegeben ist? Nur bei http... ergibt der Redirect einen Sinn. Ansonsten wäre das Konzept, mehrere Domains zu verwalten, reichlich fehlkonstruiert. Das traue ich Confixx nicht zu.

Am Ende sollen also quasi ein Shop System und ein CMS, jeweils aus dem Root Verzeichnis verfügbar sein.

Das heißt also, dass du im Root-Verzeichnis etwas liegen hast, auf das du zugreifen möchtest. Weiterhin hast du zwei Unterverzeichnisse, in denen CMS und Shop liegen. Und die beiden (oder vielleicht auch nur eins davon - egal) sollen so tun, als ob sie im Root liegen. Dann nützt die das Verschieben des DocumentRoot auf ein Unterverzeichnis zugegeben recht wenig. Man könnte da schon noch was mit Alias oder Symlinks hinzaubern, was aber je Datei konfiguriert werden müsste, also vermutlich zu aufwendig wird.

Dann wird es wohl doch die mod_rewrite-Lösung werden müssen. Zunächst mal sei erwähnt, dass ein RewriteCond (oder auch mehrere) nur auf die _danach_ notierte RewriteRule wirkt.

RewriteEngine on
RewriteBase /

#Auf Unterverzeichnis umleiten und Verzeichnis ausblenden
RewriteRule !^test/ test%{REQUEST_URI} [L]

RewriteCond %(HTTP_HOST) ^test/

In deinem Ausgangsposting steht die RewriteCond ziemlich unmotiviert in der Gegend rum. Wenn du also anhand des Hosts eine Einschränkung benötigst, dann muss einerseits die RC nach oben vor die RR und andererseits ist das / am Ende nicht zielführend. Ein Hostnamen enthält keine Slashes. Außerdem müssen die {}-Klammern verwendet werden, keine runden.

Könnte man dein Ziel auch wie folgt formulieren? Alles was kein(e) real existierende(s) Verzeichnis oder Datei ist soll auf /test umgeschrieben werden. Dann kann man das wie folgt lösen.

RewriteEngine On  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule .* test/$0

dedlfix.