Claudius L.: RewriteRule funktioniert nicht mehr nach Kopieren

Beitrag lesen

Hallo Bob und danke für deine Denkanstöße!

RewriteRule ^wwww/(foo|bar)((/.*$)|($)) wwww/index.php?$1$2

So viele Klammern...
RewriteRule ^wwww/(foo|bar)(/.*$|$) wwww/index.php?$1$2 [L]
müsste das gleiche sein.

Ah, cool dass das so auch geht. Ich war mir nicht sicher und hatte vorsichtshalber lieber ein paar Klammern mehr als zu wenig gesetzt … ;-)

Wenn das dein Livesystem ist (und du nicht damit umziehen musst, wo kein Zugriff auf die httpd.conf besteht), würde ich die Regeln im <virtualhost> plazieren statt im Verzeichniskontext.

Dort aber
RewriteRule ^/wwww/(foo|bar)(/.*$|$) /wwww/index.php?$1$2 [PT]

Naja, im Moment ist das alles nur lokal, aber langfristig will ich das eigentlich schon online zum Einsatz bringen. Von dem her bleibe ich wohl lieber in der .htaccess.
Aber sehe ich das richtig, dass ich die Adresse in der .htaccess ohne, in der httpd.conf aber mit führendem Slash angeben muss?
Und könntest du mir eventuell das Flag [PT] ein wenig näher erläutern? Ich werde aus der Erläuterung zu pass through nicht so wirklich schlauer …

Welche Apache-Version nutzt du? Unter Apache 1.3 bestehen api-bedingt unter Win32-Systemen die filenames grds. in Kleinbuchstaben. Ansonsten schaue mal per RewriteLog nach, was passiert. Der Verzeichniskontext kann kompliziert werden, drum würde ich bei Zugriff auf die httpd.conf grds. den Serverkontext vorziehen. In dem Fall wäre das im <virtualhost> von webdesign.test dann

RewriteRule ^/TestCMS/(foo|bar)(/.*$|$) /TestCMS/index.php?$1$2 [PT]

Apache 2.2.3.
Allerdings hat sich das Problem nun erübrigt – nach dem Versuch mit dem RewriteLog (danke auch für diesen Tipp, kannte ich noch nicht) und viel Grübelei habe ich die Ursache des Problems entdeckt: Ich hatte in /Test-CMS noch eine .htaccess Datei liegen. In dieser waren zwar alle RewriteRules auskommentiert – aber eines hatte ich vergessen: RewriteEngine On stand noch darin. Das hat wohl verhindert, dass die .htaccess-Datei aus dem Verzeichnis darüber beachtet wird, weshalb einfach _nichts_  passiert ist. Das war es nämlich auch, was der RewriteLog zeigte: gähnende Leere.

Das Problem hat sich damit also wohl geklärt …

Schönen Abend noch,

Claudius