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

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

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

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

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

РЕДАКТИРОВАТЬ: ответ @ carpereret намного лучше. Направьте его вместо этого

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