Heizer: Problem mit mod_rewrite und RewriteCond

Liebes Forum

Ich probierte gerade, folgenden Rewrite zu machen:

/datei.html?edit  ->  /edit?datei.html

Mein Code sieht folgendermaßen aus:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^edit$
RewriteRule /(.) /edit?$0

Das funktioniert aber nicht, und es liegt nicht an der RewriteRule, wenn ich die RewriteCond auskommentiere, funktionierts. wenn ich statt  ^edit$   ^.*$  verwende, klappt es auch, aber bei  ^.+$  nicht. Es sieht also so aus, als wenn %{QUERY_STRING} lehr wäre, wenn ich die Variable aber an die letzdendliche URL anhänge [ /edit?$0(%{QUERY_STRING}) ], so wird "edit" angezeigt.

Ich hab lange rumprobiert und lange Docu gelesen, aber ich komme nicht dahinter, warum es nicht klappt. Vielen Dank für jeden Tip.

Heizer

  1. Hallo Heizer,

    RewriteEngine On
    RewriteCond %{QUERY_STRING} ^edit$
    RewriteRule /(.) /edit?$0

    Das funktioniert aber nicht, und es liegt nicht an der
    RewriteRule, wenn ich die RewriteCond auskommentiere,
    funktionierts. wenn ich statt  ^edit$   ^.*$  verwende, klappt
    es auch, aber bei  ^.+$  nicht. Es sieht also so aus, als
    wenn %{QUERY_STRING} lehr wäre, wenn ich die Variable aber an die
    letzdendliche URL anhänge [ /edit?$0(%{QUERY_STRING}) ], so wird
    "edit" angezeigt.

    Ich glaube, du hast das mit den Variablen noch nicht so recht
    verstanden: es gibt kein $0 :-) Du meinst sicher $1. Das gibt es
    durchaus. Weiterhin solltest du noch einen Quantifier verwenden,
    also aus der RewriteRule lieber das hier machen:

    RewriteRule /?(.+) /edit?$1

    Weiterhin kannst du in der RewriteCond statt %{QUERY_STRING}
    mal %{ENV:QUERY_STRING} verwenden, vielleicht klappt das ja besser.
    Wenn das auch nicht klappt, verwende %{REQUEST_URI} folgendermassen:

    RewriteCond %{REQUEST_URI} ?edit$

    Grüße,
     CK

    --
    Nur die Weisesten und die Dümmsten können sich nicht ändern.
    http://wwwtech.de/