Problem mit mod_rewrite Conditions
Felix234
- webserver
Hallo zusammen,
ich sitze seit einiger Zeit an einem mod_rewrite-Problem und bekomme es einfach nicht hin:
Alle Urls, die nicht mit /de oder /en/ anfangen, sollen umgeschrieben werden:
RewriteCond %1 !^de/ [NC]
RewriteCond %1 !^en/ [NC]
RewriteRule ^(.+)$ http://irgendwas.de/de/$1 [L,R]
Kann mir hier bitte jemand weiterhelfen?
Grüße,
Felix
Hi Felix234!
RewriteCond %1 !^de/ [NC]
RewriteCond %1 !^en/ [NC]
RewriteRule ^(.+)$ http://irgendwas.de/de/$1 [L,R]
%[1-99] wird genutzt um Backreferences im Suchmuster der RewriteCond zu nutzen. Deine RewriteCond trifft natürlich nie zu, da %1 hier immer leer sein wird, da es keinen Suchstring gibt, auf den es sich beziehen könnte (du hast %1 selbst als Suchstring gesetzt). Stattdessen solltest du %{REQUEST_URI} nutzen:
RewriteCond %{REQUEST_URI} !^/de/ [NC]
RewriteCond %{REQUEST_URI} !^/en/ [NC]
RewriteRule ^(.+)$ http://irgendwas.de/de/$1 [L,R]
(Achtung, habe noch Slashes hinzugefügt)
Mehr zur Syntax: mod_rewrite: RewriteCond
tschau
ichen
Danke, hat einwandfrei geklappt. Jetzt ist mir auch klar, warum es gescheitert ist.
Gruß,
Felix
Hi Felix234!
RewriteCond %1 !^de/ [NC]
RewriteCond %1 !^en/ [NC]
RewriteRule ^(.+)$ http://irgendwas.de/de/$1 [L,R]%[1-99] wird genutzt um Backreferences im Suchmuster der RewriteCond zu nutzen. Deine RewriteCond trifft natürlich nie zu, da %1 hier immer leer sein wird, da es keinen Suchstring gibt, auf den es sich beziehen könnte (du hast %1 selbst als Suchstring gesetzt). Stattdessen solltest du %{REQUEST_URI} nutzen:
RewriteCond %{REQUEST_URI} !^/de/ [NC]
RewriteCond %{REQUEST_URI} !^/en/ [NC]
RewriteRule ^(.+)$ http://irgendwas.de/de/$1 [L,R](Achtung, habe noch Slashes hinzugefügt)
Mehr zur Syntax: mod_rewrite: RewriteCond
tschau
ichen