holinhot
V2EX  ›  问与答

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

  •  
  •   holinhot · Sep 12, 2015 · 2102 views
    This topic created in 3957 days ago, the information mentioned may be changed or developed.

    域名 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 replies    2015-09-14 11:09:53 +08:00
    raincious
        1
    raincious  
       Sep 12, 2015
    HTTP_HOST 是 HTTP HOST 头的内容。

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

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

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

    在后端得到的是 80 端口。
    holinhot
        3
    holinhot  
    OP
       Sep 14, 2015
    @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');
    }这样是行啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3294 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 11:31 · PVG 19:31 · LAX 04:31 · JFK 07:31
    ♥ Do have faith in what you're doing.