如何使用method =“get”将表单转换为mod_rewrite url?

时间:2009-11-05 03:08:37

标签: mod-rewrite

我有一个PHP MVC Web App和Apache mod_rewrite规则已经正常工作,但是当我使用 method =“get”创建表单时,提交的URL看起来像

contact/submit?a=b&c=d

我希望我的表单提交到

contact/submit/a/b/c/d

发布和获取表单在服务器端都可以正常工作,但是当使用post方法时,后退按钮总是要求重新发布表单值,而且我希望URL中的字符串用于SEO。我认为JQuery可能会让我拦截表单提交事件并动态刷新到url,但似乎必须有一种更简单的方法来实现它,我不知道。

2 个答案:

答案 0 :(得分:0)

您可以使用Spring Web Flow使用的POST-> REDIRECT-> GET模式。这将允许您根据需要发布,然后重定向到联系/提交/ a / b / c / d。它还可以通过后退按钮来解决问题,询问您是否要重新提交表单数据。请参阅此相关article

答案 1 :(得分:0)

GET方法使用标准查询字符串参数通过HTTP GET请求传递表单数据。

HTTP GET请求无意修改服务器上的任何数据。 POST用于修改服务器上的数据。

可以缓存GET。 POST不会。

/ a / b / c / d不是传递数据的标准格式(如RFC)。但是,对于请求发布的数据或URL,这已经变得很流行。

因此,如果您要更新服务器数据,只需使用POST - > REDIRECT - > / A / B / C / d

如果您只是从服务器读取数据,那么您将需要使用一些Javascript来读取您的表单值并构造一个查询字符串,然后使用window.location = ...

转到它

玩得开心!