2011-09-22 45 views
5

我有一個php服務器,我想重寫傳入的url。由於傳入的請求是發佈請求,我還希望發佈的數據在新的URL上傳輸。PHP重寫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] 

問題是我不能同時在他們兩個。我究竟做錯了什麼?有沒有辦法重定向網址並保留髮布數據?

+0

我想重寫不重定向。 – reven

回答

8

你的問題可能是你做重定向而不是重寫。重定向改變了人們在瀏覽器中看到的網址。重寫只改變你的PHP應用程序看到的URL。後者通常是你想要的。在後一種情況下,POST變量會自動保留。

爲了改寫,而不是重定向,使用本地路徑,而不是一個URL:

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

可能我在那裏,我不知道它。是的,我想重寫不重定向。我很困惑,因爲我在瀏覽器中看到相同的網址,我認爲重寫沒有成功。但你有權利。甚至認爲瀏覽器的url是相同的index.php執行。感謝隊友 – reven

+0

這正是我一直在尋找的。謝謝 – wonderwhy