2009-11-05 119 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 = ...

玩得开心!