PHP:如何获取用mod_rewrite重写的URL?

Lin*_*sku 14 php mod-rewrite

例如,如果我重写/category/topic/post//index.php?cat=1&topic=2&post=3,我怎样才能/index.php?cat=1&topic=2&post=3使用PHP?

Cfr*_*eak 13

您可以非常轻松地重新创建它.$_SERVER['PHP_SELF']仍然会为您提供脚本的正确文件名.这应该做的伎俩:

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

$url .= "?" . implode("&", $parts);
Run Code Online (Sandbox Code Playgroud)

$url 现在将是您正在寻找的网址.

编辑:@ carpereret的答案要好得多.反而投票给他


car*_*ret 9

原来的uri应该在 $_SERVER['REQUEST_URI']

  • 这与OP的要求相反。OP 询问如何获取重写后的 URL,而不是原始形式。 (2认同)