目前,我有一个可通过以下域访问的脚本
http://me.domain.com/path/index.php
如果满足某些条件,我将通过使用重定向回到自身
header('Location: index.php');
重定向后,大多数主流浏览器最终会以
http://me.domain.com/path/index.php
仍然.但是,对于某些第三方供应商的浏览器(用于SIM卡模拟目的),它们最终会在(注意丢失的路径)
http://me.domain.com/index.php
我想知道,这是因为第三方供应商没有正确实现他们的浏览器?或者,在处理重定向时,不同的浏览器可以产生不同的行为吗?
我意识到如果我使用以下代码,
// $_SERVER['PHP_SELF'] is /path/index.php header('Location: '.$_SERVER['PHP_SELF']);
它适用于所有浏览器,不会丢失路径.
好手册说:
大多数现代客户端接受相对URI作为»Location:的参数,但是一些较旧的客户端需要绝对URI,包括方案,主机名和绝对路径.你通常可以使用$ _SERVER ['HTTP_HOST'],$ _SERVER ['PHP_SELF']和dirname()自己创建一个相对的URI:
总之,总是使用完整的URI来涵盖所有情况