2011-09-22 7 views
5

私はPHPサーバーを持っており、受信したURLを書き換えたいと思います。受信リクエストはポストリクエストであるため、投稿されたデータを新しいURLに転送したいと思っています。PHP URLを書き換えて投稿したデータを保存します

私は、次の書き換えルールにURLをリダイレクトするために管理している:

RewriteRule ^test/(.*)$ http: //localhost/index.php?data=&1 [NC,L] 

または

RewriteRule ^test/(.*)$ http: //localhost/index.php?data=&1 [NC,R=301] 

私も次の書き換えルールでポストデータを保存するために管理している:

RewriteRule ^test/(.*)$ http: //localhost/index.php?data=&1 [P] 

問題は、私は同時にそれらの両方をすることができないということです。私は間違って何をしていますか? URLをリダイレクトして投稿データを保持する方法はありますか?

+0

私はリダイレクトしないように書き直したいです。 – reven

答えて

8

あなたの問題は、リライトの代わりにリダイレクトすることが原因である可能性があります。リダイレクトすると、ブラウザに表示されるURLが変更されます。書き換えは、PHPアプリケーションが見るURLのみを変更します。後者は通常あなたが望むものです。後者の場合、POST変数は自動的に保持されます。リダイレクトの代わりに書き換えるために

、代わりにURLのローカルパスを使用します。

RewriteRule ^test/(.)$ index.php?data=$1 [NC,L] 
+1

おそらく私はそこにいて、私はそれを知らなかった。そう、私はリダイレクトしないように書き直したい。私はブラウザで同じURLを見ていて混乱していました。私は書き換えがうまくいかないと思っていました。しかし、あなたは正しいと思います。ブラウザのURLがindex.phpと同じであるとは思っていましたが、ありがとう。 – reven

+0

これはまさに私が探していたものでした。ありがとう – wonderwhy