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

IIS 6中的重定向设置是否适用于表单发布?,iis,post,redirect,iis-6,Iis,Post,Redirect,Iis 6,我有一个网站,第三方对文件执行HTTP post,我们称之为http://mywebsite/third-party-post.cfm(这是一个ColdFusion网站) 我想将代码移动到一个新文件中—我们称之为http://mywebsite/third-party-post-new.cfm 如果我更改IIS中的文件属性: 这将传递POST操作的表单字段,还是像这样的重定向只对GET有效?请参阅POST。尽管这个问题是关于apache的,但无论您使用的是哪个版本,IIS都是如此。有许多其他选

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

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

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


这将传递POST操作的表单字段,还是像这样的重定向只对GET有效?

请参阅POST。尽管这个问题是关于apache的,但无论您使用的是哪个版本,IIS都是如此。有许多其他选择可以绕过这个问题。其中之一是创建/third-party-post.cfm文件并包括/third-party-post-new.cfm。您甚至可以使用新的HTML5技术在不刷新页面的情况下更改url(请参阅)。

在重定向过程中无法传递post参数。web服务器实际上会回拨浏览器,询问它是否可以移动页面,然后浏览器会重新向服务器请求移动页面的URL提交请求。我相信这是对浏览器的301调用。你永远看不到这一点,它发生在毫秒内。当重定向发生时,它将销毁为支持来自浏览器的新请求而提交的所有post参数,服务器将其视为一个全新的请求,没有post数据

您需要以其他方式将数据传递到页面,可以通过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]
上面的代码将接受对原始页面的请求,并将其转换为对新页面的请求。If仍将保留原始URL,但将显示新页面。
IIS有一个URL重写功能,您可以利用它,或者如果您熟悉Htaccess和apache,您可以使用Helicon Ape来读取站点的Htaccess文件。

FYI,我刚刚在IIS 7.5中运行了一个测试,表单参数没有传递到重定向页面。这在IIS 6中可能吗?谢谢您提供的信息。我可能会尝试URLRewite规则,但这可能不是维护的最佳方法。我认为此时最好的选择是联系供应商,让他们更改发布到的URL。