Rolf B: Bedingte Umleitung mittels .htaccess

Beitrag lesen

Hallo Lucie,

in der RewriteCond wird eine Regex ("regular expression") angegeben. Die Regex-Syntax ist nicht ganz einheitlich, es gibt unterschiedliche Regex-Engines, aber OR ist in keiner Engine Teil der Syntax.

Apache verwendet PCRE (Perl compatible regular expressions). Hier sind ein paar Beispiele aus dem Apache Handbuch für die verwendete Regex-Syntax und Links zu Dokumentationen. Wir haben auch im Selfhtml-Wiki einen Artikel zu Regex. Der bezieht sich zwar auf JavaScript, aber die JS-Regexe sind Perl-ähnlich.

Wenn Du ein "ODER" haben willst, musst Du den | Operator verwenden. D.h. mit

RewriteCond %{REQUEST_URI} !(^/(Bilder|Fotos)) [NC]

müsste es funktionieren. Das bedeutet "NICHT (Bilder oder Fotos)".

Alternativ kannst Du auch zwei Bedingungen formulieren, das könnte verständlicher sein.

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/Bilder [NC]
RewriteCond %{REQUEST_URI} !^/Fotos [NC]
RewriteRule ^ https://www.test.test/ [R=301,L] 

RewriteConds sind UND-verknüpft, in dieser Formulierung steht da also "NICHT Bilder UND NICHT Fotos". Was nach den Gesetzen von de Morgan gleichbedeutend mit "NICHT (Bilder ODER Fotos)" ist.

Rolf

--
sumpsi - posui - obstruxi