2011-07-05 16 views
11

たとえば、/category/topic/post//index.php?cat=1&topic=2&post=3に書き換えると、/index.php?cat=1&topic=2&post=3はどのようにしてPHPを使用できますか?PHP:mod_rewriteで書き換えられたURLを取得するにはどうすればよいですか?

+6

にあるはずです。短い答え:できません。ただし、アプリケーションが書き換えスキームを認識している(つまり、逆マッピングがある)か、または書き換えルールが明確に定義されている場合は、書き換えプロセスを取り消すことができます。 –

+3

URL書き換えモジュールv2が使用されている場合、@Emre '$ _SERVER ['REQUEST_URI']'はApacheサーバーとIIS 7.xで正常に動作します。 – LazyOne

+0

なぜこのURLが必要ですか?達成したいことを達成するためのより簡単な解決策があるかもしれません。 – dqhendricks

答えて

12

かなり簡単に再作成できます。 $_SERVER['PHP_SELF']は、スクリプトの正しいファイル名を提供します。

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

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

$urlは今、あなたが探しているURLになります。これは、トリックを行う必要があります。

編集:@ carpereretの答えははるかに良いです。代わりに彼をアップアップ

9

元uriは$_SERVER['REQUEST_URI']

+0

いいです。また、ブラウザのアドレスバーに表示されている完全なURLを書き換えます。 – LuBre

関連する問題