RewriteRule bewahrt GET-Parameter
Was ist falsch mit dieser rewrite-Regel?
RewriteRule ^api/(.+)$ api/index.php?url=$1 [L]
Möchte ich einfach nur "index".php?url=" Hinzugefügt werden, nachdem die api/und vor dem rest der get-Parameter.
api/image/upload&arg1=1&text=lorem+ipsum
zu
api/index.php?url=image/upload&arg1=1&text=lorem+ipsum
Was ist falsch mit (.+) um alles, was nach api/?
- ^api/([a-zA-Z0-9/_\&\=\%]+)$ funktioniert, aber funktioniert nicht mit verschiedenen sprachspezifischen Zeichen wie åäöøæé und so weiter... Das ist der Grund, warum ich möchte ^api/(.+)$ arbeiten statt. . soll bedeuten, dass jedes Zeichen außer Zeilenumbruch oder Ende der Zeichenkette also ich verstehe es nicht warum es nicht funktioniert.
- mögliche Duplikate von halten Sie url-Parameter mit htaccess-rewrite
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den regex auf die RewriteRule wird nur ausgeführt, gegen die Pfad-Teil der URL, nicht der Abfrage-Parameter. Zum Glück gibt es das
[QSA]
- flag zum Erhalt bestehender query-Parameter.Sind Sie etwas tun, um zu stoppen unendliche Rekursion?
oder andere gleichwertige
R=301
hier arbeiten? Es ist nicht in der Dokumentation unter httpd.apache.org/docs/2.0/mod/mod_rewrite.htmlIch denke, man muss schreiben Sie Ihren domain-Namen vor dem regex-Kram. Wie diese: