Shy Guy wrote:Ich verstehe schon...
Aber bei den Regular Expressions finde ich nicht heraus, wie ich eine Zeichenfolge "negieren" kann, sprich, dass z.B. die Zeichenfolge ".php"
nicht am Ende der URL steht.
Genau das ist eine bekannte Schwachstelle der Regular Expressions. In Script Sprachen wie PHP beispielsweise umgeht man dieses Problem manchmal damit, dass man eben eine Zeichenkette sucht und bei "Nichttreffern" eine Aktion veranlasst.
Shy Guy wrote:Oder muss ich evtl. RewriteCond benutzen?
Das wäre eine Möglichkeit. Oder man nutzt eben aus (und das ist u.a. die Usache, warum Dein Pattern überhaupt manchmal funktioniert), dass eine RewriteRule nur ausgeführt wird, wenn das Pattern trifft (damit ist ja implizit eine Condition mitgegeben). Die einfachste Lösung, die mir einfällt, setzt aber voraus, dass Ordner keinen Punkt "." im Namen haben dürfen (was natürlich von Dir selbst kontrolliert wird), aber durchaus eine vertretbare Anforderung ist:
- Code: Select all
RewriteRule [^\.]* $0.php
Noch effektiver und schlichter geht nicht. Wozu der ganze Aufwand dient, ist mir allerdings schleierhaft, insbesondere wo ja auch x-fach andere Fälle nicht festgelegt sind (was passiert bei "test.abc", was passiert bei "test.ph"? usw.).