doulu8537 2016-06-02 01:24
浏览 221
已采纳

PHP重定向到localhost

I have a live site and I want to redirect a page to my current machine I'm developing on. I tried the following

header('HTTP/1.1 307 Temporary Redirect');
header('Location: http://localhost/dev/test.php');

The redirection should NOT be done to the live server's localhost, but to my local machine I'm currently using to develop. This is simply to test a payment gateway I've added to my site (the payment gateway requires a valid URL to redirect to, hence I can't use localhost).

The payment gateway will redirect to

http://www.example.com/test.php

Which should then be redirected to my current machine:

http://localhost/dev/test.php

If php can't manage this, can I do this with apache redirects? I also want to send all GET and POST parameters received at the live server to my local page.

  • 写回答

2条回答 默认 最新

  • duanchai0028 2016-06-02 14:49
    关注

    You don't need to send the HTTP 1.1 header and that might be what's preventing the redirect from working. Your web server will add this one automatically because it needs to send the status code. Instead, pass the 307 status as header()'s third parameter:

    header('location: http://localhost/some/url', true, 307);
    

    The redirect headers are parsed by your browser, so "localhost" will be the same machine your browser is running on.

    To pass all the GET parameters, you could append $_SERVER['QUERY_STRING'] to the URL:

    header('location: http://localhost/some/url?' . $_SERVER['QUERY_STRING'], true, 307);
    

    POST parameters are more complicated. You'll need to build your own URL by concatenating everything from the $_POST array. Be sure to urlencode() the values.

    $redirect_url = 'http://localhost/some/url?';
    foreach($_POST as $key => $value){
        $redirect_url .= $key . '=' . urlencode($value) . '&';
    }
    header('location: ' . $redirect_url, true, 307);
    

    And bear in mind you can only redirect a POST request as a GET. But if you're just building a mock for testing your gateway integration, that should be fine.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 怎么实现数组的循环累加,simulink
  • ¥15 51单片机最小开发板系统,想让寻迹小车在全检测到黑线(寻迹模块代码在第一块板子上)时蜂鸣器响(在第二块板子上)
  • ¥15 pbootcms多选调用成列表
  • ¥15 51单片机oled显示时钟
  • ¥15 小规模TSP问题的动态规划求解
  • ¥25 kubelet.service: Failed with result 'exit-code'.
  • ¥15 bitvise黑框内一键部署v2ray提示账户没有root怎么解决
  • ¥15 车型识别以及相似度匹配中细节特征提取以及图像模糊问题
  • ¥15 怎么用鸿蒙的ArkTs写出来啊
  • ¥30 websocket服务端多线程通信
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部