1

因此,有一个专用代理服务器 (rtrk.com),它为我负责的其中一个站点设置了一个子域代理。

The following example is how it works
Original site: example.com
Proxy site: example-px.rtrk.com

当访问代理站点 url 时,会实时加载原始站点。对实际站点上的站点文件所做的更改会立即通过代理 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
4

2 回答 2

0

大声笑 - 当我无法弄清楚时,它总是很愚蠢。

问题是当我通过代理访问该站点时,所有匹配“www.example.com”的数据都会在返回到我的浏览器之前自动转换为代理地址。

长话短说,一切都按预期的方式工作,只是输出在代理服务器到达我的浏览器之前被修改了。

于 2013-01-02T23:22:28.407 回答
-1

您正在以一种有趣的方式使用 stristr。是 stristr 的文档。根据文档,您正在搜索字符串“exam”,因此您永远不会从该函数收到“example-px.rtrk.com”。

于 2013-01-02T22:05:01.037 回答