Ist das, was du hier reingestellt hast, die komplette .htaccess? Ihc nehme mal an, die steht im Webroot und cms ist ein direktes Unterverzeichnis des Webroot.
Ich versuch mal mein Glück, ein wirklicher htaccess-Könner bin ich sicher nicht. Also keine Garantie . Kannst es ja mal testen
Code:
RewriteEngine On
# Das schreibt lediglich domain.de in www.domain.de um, sollte also nicht stören
RewriteCond %{HTTP_HOST} ^domain.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301]
# Falls Host domain.de oder www.domain.de und der Pfad fängt nicht mit /cms an,
# vorne an den Pfad /cms/ einfügen.
RewriteCond %{HTTP_HOST} ^(www\.)?domain.de$
RewriteCond %{REQUEST_URI} !^/cms
RewriteRule ^(.*)$ /cms/$1
# Falls Host subdomain.domain.de und der Pfad fängt nicht mit /verzsubdomain an,
# vorne an den Pfad /verzsubdomain/ einfügen.
RewriteCond %{HTTP_HOST} ^subdomain.domain.de$
RewriteCond %{REQUEST_URI} !^/verzsubdomain
RewriteRule ^(.*)$ /verzsubdomain/$1
Eine interessante Alternative finde ich auch, was die Jungs von uberspace gemacht haben. Damit kannst du jede Domain in ein eigenes Verzeichnis leiten, das allerdings so heissen muss wie die Domain.
Code:
# If there is a host-specific pseudo-DocumentRoot, use it instead of the default one
RewriteCond /<Pfad zu deinem Webroot>/%{HTTP_HOST} -d
RewriteRule (.*) /<Pfad zu deinem Webroot>/%{HTTP_HOST}$1
Damit wird z.B. die (Sub)Domain www.domain.de ins Verzeichnis /www.domain.de umgeleitet.
Und die Domain anderedomain.tld ins Verzeichnis /anderedomain.de.
Die Umleitung wirkt nur, wenn das Unterverzeichnis auch existiert.
Lesezeichen