【问题标题】:Configuring IIS to pass POST data through 301 redirect配置 IIS 以通过 301 重定向传递 POST 数据
【发布时间】:2012-09-27 14:03:52
【问题描述】:

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

我对 IIS 及其配置非常陌生,所以我想这很容易解决,但是如何确保通过 IIS 上的 301 重定向保留 POST 请求?

【问题讨论】:

    标签: http iis redirect iis-7


    【解决方案1】:

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

    /* 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;
    }
    

    【讨论】:

      猜你喜欢
      • 2016-12-22
      • 2012-08-10
      • 2015-05-19
      • 2010-12-09
      • 1970-01-01
      • 2012-02-20
      • 2011-08-24
      • 2012-06-05
      • 1970-01-01
      相关资源
      最近更新 更多