PHP: Wie kann ich die URL, die umgeschrieben wurde, mit mod_rewrite?
Zum Beispiel, wenn ich umschreiben /category/topic/post/
zu /index.php?cat=1&topic=2&post=3
, wie bekomme ich /index.php?cat=1&topic=2&post=3
mit PHP?
- Kurze Antwort: Sie kann nicht. Jedoch, wenn Ihre Anwendung kennt die rewrite Schema (dh. Sie haben reverse-mapping) oder Sie haben klar definierte rewrite-Regeln, können Sie rückgängig machen, die rewrite-Prozess.
$_SERVER['REQUEST_URI']
wird den job zu erledigen just fine auf Apache-server und IIS 7.x wenn der URL-Rewrite-Modul v2 verwendet wird.- warum willst du diese url? möglicherweise gibt es eine einfachere Lösung, um zu vollenden, was Sie erreichen möchten.
- Sie haben Recht, ich hatte vergessen, dass.
- für die mod_rewrite-Extraktion & debug bookmark this link: askapache.com/htaccess/crazy-advanced-mod_rewrite-tutorial.html
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie es neu ziemlich leicht.
$_SERVER['PHP_SELF']
immer noch geben Sie den richtigen Dateinamen für das Skript an. Dies sollte den trick tun:$url
wird nun die URL, die Sie suchen.EDIT: @carpereret Antwort ist viel besser. Upvote ihm stattdessen
$_SERVER['QUERY_STING'];
enthält den query-string genau so, wie es gesendet wurde. Keine Notwendigkeit, bauen Sie es. Das könnte noch einfach ausgedrückt.$url = implode('?', array_filter([$_SERVER['PHP_SELF'], $_SERVER['QUERY_STRING']]));
original-uri sollte in
$_SERVER['REQUEST_URI']