hansmaiser hat geschrieben:Es funktioniert mit
RewriteRule neu(.*)$ index.php?d=neu
Dieses ^ stört anscheinend
Merkwürdig. Das ^ markiert den Beginn des Textes, das $ das Textende; das Muster ^neu$ bedeutet also "Textanfang, Zeichen n, e, u, Textende". So gesehen müsste ^neu$ auf neu passen. Irgendwas stört da.
Probiere doch nochmal ^/neu$ oder versuche es mit ^.neu$, ^..neu$ usw (ein Punkt steht für ein einzelnes, beliebiges Zeichen), um herauszufinden, wieviel da noch vor dem neu steht.
^.*neu$ müsste übrigens auch funktionieren, ist aber genauso unschön wie neu$ .
Aus letztlich dem gleichen Grund solltest Du in jedem Fall den Klammerteil am Ende rausnehmen. Dein jetziges Muster neu(.*)$ passt nämlich auf
alles, was irgendwo das Wörtchen neu enthält, einmal weil vorne die Anfangsmarke ^ fehlt (es kann also noch beliebiger Text vor neu kommen), einmal weil zwischen neu und Endmarke $ die beiden Zeichen .* stehen, die für eine beliebige Menge (*) beliebiger Zeichen (.) stehen.
Sehe ich auch so und tut's bei mir auch so. Irgendwo scheint bei Dir der Wurm drin zu sein, weil ^neu$ ja auch schon nicht auf neu passt.
Da Du mehrere Regeln zu haben scheinst, solltest Du am Besten alles auskommentieren bis auf RewriteEngine, RewriteBase und die zu prüfende RewriteRule/RewriteCond-Kombination. Auf diese Weise kannst Du zumindest ausschließen, dass es zu Überschneidungen kommt.
Beachte auch, dass die RewriteRule-Zeilen meist mit [L] enden sollten, um die weitere Verarbeitung abzubrechen (siehe Anleitung).