V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
holinhot
V2EX  ›  问与答

端口转发后 php 还能判断 host 吗

  •  
  •   holinhot · 2015-09-12 22:03:17 +08:00 · 1573 次点击
    这是一个创建于 3185 天前的主题,其中的信息可能已经有所发展或是发生改变。

    域名 a.com 指向 1.1.1.1:77 在( 1.1.1.1 上 77 端口)转发到 2.2.2.2:80
    在 2.2.2.2:80 这个服务器上能判断域名 a.com 后面的端口号是多少吗 还是在 2.2.2.2:80 的看到的应该是 a.com:80 而不是 a.com:88 吗

    3 条回复    2015-09-14 11:09:53 +08:00
    raincious
        1
    raincious  
       2015-09-12 22:09:45 +08:00
    HTTP_HOST 是 HTTP HOST 头的内容。

    所以这得看你中间的那个 Proxy 怎么配置的。
    ss098
        2
    ss098  
       2015-09-12 22:11:42 +08:00
    主机头是属于 HTTP 协议部分,与端口转发无关,所以可以得到主机头。

    不能看到用户实际访问的端口,因为端口转发的机器连接到被转发机器使用的不是监听的端口而是新分配的。

    (究竟是 77 端口还是 88 端口啊)

    在后端得到的是 80 端口。
    holinhot
        3
    holinhot  
    OP
       2015-09-14 11:09:53 +08:00
    @ss098 <?php
    $http_host = $_SERVER["HTTP_HOST"];
    $exp = explode (":", $http_host );
    $domain = $exp[0];
    $port = $exp[1];

    if ( $port == 1000 )
    {
    echo file_get_contents ('./1000.html');
    }
    if ( $port == 1001 )
    {
    echo file_get_contents ('./1001.html');
    }这样是行啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1384 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:40 · PVG 01:40 · LAX 10:40 · JFK 13:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.