PHP: Как я могу получить URL-адрес, который был переписан с помощью mod_rewrite?

Например, если я переписываю /category/topic/post/ в /index.php?cat=1&topic=2&post=3, как я могу получить /index.php?cat=1&topic=2&post=3 с помощью PHP?

Ответ 1

Вы можете легко воссоздать его. $_SERVER['PHP_SELF'] все равно даст вам правильное имя файла для script. Это должно сделать трюк:

$url = $_SERVER['PHP_SELF'];
$parts = array();
foreach( $_GET as $k=>$v ) {
    $parts[] = "$k=" . urlencode($v);
}

$url .= "?" . implode("&", $parts);

$url теперь будет URL, который вы ищете.

EDIT: @carpereret ответ намного лучше. Направьте его вместо

Ответ 2

исходный uri должен находиться в $_SERVER['REQUEST_URI']