Folgende Rules machen bei mir auf einem 1und1 Server Probleme:
RewriteEngine On# catches all cathegories
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Existiert denn das Verzeichnis /cat/? Wenn nicht, dann spare dir die Conditions, sie werden dann immer wahr ergeben. (Hat jetzt nichts mit dem Problem zu tun, ist nur eine Sache der Performance, die Conditions werden nach der Rule geprüft.)
RewriteRule "^cat/([a-z0-9_-.,/]+?)/?([0-9]{0,4})/?$" archive.php?cat=$1&y=$2 [QSA]
Wenn die .htaccess auf dem Server liegt, dann bringt er einen 500.
Siechfred hat herausgefunden, dass dies an folgendem liegt: '+?'
Das ist eine Perl-RegEx ("non-greedy").
Ursächlich für den 500 ist eine veraltete Rewrite Engine.
Nein. Ursächlich ist ein seit 5 Jahren veralteter Apache Webserver. Der 1.3 branch nutzt die POSIX RegEx library, versteht entspr. den Ausdruck +? nicht. Die 2.x branches nutzen die hier benötigte PCRE library. Mit dem Modul selbst direkt hat das insoweit nichts zu tun.
Wenn du sicherstellen kannst, dass wenn das Jahr vorkommt immer ein Slash davor ist - also /abcde/2006, dann kannst du das auch in zwei Regeln aufsplitten. Ohne das genaue "URL-Layout" zu kennen ist das aber nur Rumraterei.
Grüße
Bob