IIS 6中的重定向设置是否适用于表单POST?

时间:2014-01-26 18:39:25

标签: iis post redirect iis-6

我有一个网站,其中第三方对文件执行HTTP发布 - 让我们称之为http://mywebsite/third-party-post.cfm(这是一个ColdFusion网站)。

我想将代码移动到一个新文件 - 让我们称之为http://mywebsite/third-party-post-new.cfm

如果我在IIS中更改文件属性:

IIS File Properties Window

这会传递POST操作的表单字段,还是像这样的重定向只适用于GET?

2 个答案:

答案 0 :(得分:2)

您无法在重定向期间传递帖子参数。 Web服务器实际上回调浏览器询问它是否可以移动页面,然后浏览器重新向服务器要求移动它的URL重新提交请求。这是我相信对浏览器的301调用。你永远不会看到它,它发生在几毫秒内。当重定向发生时,它将销毁所有提交的有利于来自浏览器的新请求的帖子参数,服务器会将其视为没有帖子数据的全新请求。

您需要以其他方式将数据传递到页面,方法是通过GET请求或您希望在旧页面上运行的脚本包含。

最好使用URL重写来改变Web服务器查看该给定页面请求的方式。

the apache script would look something like this

RewriteEngine on
RewriteBase    /

RewriteCond   %{REQUEST_FILENAME} !-d
RewriteRule   ^third-party-post.cfm /third-party-post-new.cfm [L,QSA]

上述代码将请求orignal页面并将其转换为对新页面的请求。如果仍然保留原始URL但会显示新页面。 IIS具有您可以使用的URLrewrite功能,或者如果您熟悉Htaccess和apache,则可以使用Helicon Ape http://www.helicontech.com/ape/来读取您站点的htaccess文件。

答案 1 :(得分:0)

见帖子https://stackoverflow.com/a/13628908/2482184。虽然这个问题与apache有关,但无论您使用哪个版本,IIS都是如此。还有许多其他选项可以绕过此问题。其中之一是创建/third-party-post.cfm文件并包含/third-party-post-new.cfm。您甚至可以使用新的HTML5技术更改网址而不刷新页面(请参阅http://spoiledmilk.com/blog/html5-changing-the-browser-url-without-refreshing-page/)。