首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置IIS以通过301重定向传递POST数据

问配置IIS以通过301重定向传递POST数据
EN

Stack Overflow用户
提问于 2012-10-07 02:50:16
回答 1查看 1.8K关注 0票数 0

我目前正在为一个客户端在IIS 7上托管的一个网站工作,该网站被配置为重定向任何裸域请求,以重定向到'www‘子域。然而,这会导致网站上的一些表单出现问题,这些表单指向裸域。提交表单时,它会转发到'www‘子域上的正确页面,但POST参数会丢失-无论原始请求的请求类型是什么,都会使用HTTP GET请求来请求’www‘子域上的页面。

我对IIS及其配置非常不熟悉,所以我认为这是很容易修复的事情,但是我如何确保在IIS上进行301重定向后POST请求会被保留呢?

EN

回答 1

Stack Overflow用户

发布于 2012-10-07 20:55:59

如果你通过301发布,那么发布数据将被删除。您需要创建重新解析数据并再次发送的eq php脚本

代码语言:javascript
复制
/* FOR test */

$_POST['value'] = 123;
$_POST['key']  = 888;
# Online $_POST check
$_GET['redirect'] = 'https://posttestserver.com/post.php'; 
/* END: FOR test */


if( filter_var($_GET['redirect'], FILTER_VALIDATE_URL) ) {

    if ( is_array($_POST) ) :

        echo '<form method="post" action="'. $_GET['redirect'] .'" name="f">';

        foreach($_POST as $i => $v){
            echo '<input type="hidden" name="'. $i .'" value="'. $v .'">';
        }

        echo '</form> <script> document.f.submit(); </script>';

    else : // IF _GET

        $tmp = $_GET['redirect'];
        unset($_GET['redirect']);
        $ur = http_build_query($_GET);
        header("Location: " . $tmp . '?' . $ur);
    endif;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12762789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档