2009-11-05 116 views
1

我有一個PHP MVC Web應用程序和Apache mod_rewrite的規則已經工作正常,但是當我創建使用方法=形式的「得到」,提交的URL看起來像如何將form =「get」轉換爲mod_rewrite url?

contact/submit?a=b&c=d 

我想我的表單提交到

contact/submit/a/b/c/d 

發佈及獲取服務器端的形式做工精細,但使用POST方法時,後退按鈕總是要重新發布表單值,此外我想在URL的搜索引擎優化的字符串。我認爲JQuery可能讓我攔截表單提交事件並動態刷新到網址,但它似乎必須有一個更簡單的方法來做到這一點,我失蹤了。

+0

每個MVC都有自己的幫助程序來幫助您處理這種類型的場景。通過添加新標籤讓我們知道您正在使用哪個PHP框架,並吸引我注意力(和問題)。 ;) – 2009-11-05 03:29:34

回答

0

您可以使用Spring Web Flow使用的POST-> REDIRECT-> GET模式。這將允許您發佈您想要的內容,然後重定向到contact/submit/a/b/c/d。它也可以解決問題,後退按鈕詢問您是否要重新提交表單數據。看到這個相關的article

0

GET方法使用標準查詢字符串參數通過HTTP GET請求傳遞表單數據。

HTTP GET請求是不打算修改服務器上的任何數據。 POST被設計用於修改服務器上的數據。

GET可能被緩存。 POST不會。

/a/b/c/d不是用於傳遞數據的標準格式(如在RFC中)。但是,要求數據或URL發佈時,這已變得流行。因此,如果您要更新服務器數據,只需使用POST - > REDIRECT - >/a/b/c/d即可。

如果你只是從服務器讀取數據,那麼你就需要使用一些JavaScript來讀取你的表單值,並構造一個查詢字符串,然後去把它與window.location = ...

玩得開心!