因此,有一个专门的代理服务器(rtrk.com),它为我负责的其中一个站点设置了子域代理。
The following example is how it works
Original site: example.com
Proxy site: example-px.rtrk.com
访问代理网站网址时,会实时加载原始网站。通过代理URL立即显示对实际站点上的站点文件所做的更改。
我已修改网站标题以检查$_SERVER["SERVER_NAME"]
值,以确保它在example.com中结束,但我得到的行为远远超出我认为奇怪的行为,请使用以下代码:例如:
$test = $_SERVER["SERVER_NAME"];
echo $test . "<br />";
echo stristr($test, "exam") . "<br />";
echo $test;
exit;
以下输出是我期望看到的: (通过代理访问)
example-px.rtrk.com
example-px.rtrk.com
example-px.rtrk.com
我实际看到的内容:
example-px.rtrk.com
example.com
example-px.rtrk.com
这到底是怎么回事? 我验证$ test是否设置为代理主机的正确值。 stristr返回一个实际上甚至在原始值中找不到的值 然后我重新验证测试没有以某种方式改变,但它没有。
这让我绝对疯了!这怎么可能?
编辑:
我可以通过手动将测试变量设置为SERVER_NAME报告的字符串来获得正确的输出。例如:
$test = "example-px.rtrk.com";
echo $test . "<br />";
echo stristr($test, "exam") . "<br />";
echo $test;
exit;
这就是我得到的(并期望得到):
example-px.rtrk.com
example-px.rtrk.com
example-px.rtrk.com
答案 0 :(得分:0)
问题在于,当我通过代理访问网站时,所有匹配“www.example.com”的数据会在返回我的浏览器之前自动转换为代理地址。
总而言之,一切都按照预期的方式运行,只是输出在代理服务器到达浏览器之前被修改。
答案 1 :(得分:-1)
你正在以一种有趣的方式使用stristr。 Here是stristr的文档。根据文档,您正在搜索字符串“考试”,因此您永远不会从函数中收到“example-px.rtrk.com”。