当前位置:  开发笔记 > 编程语言 > 正文

标头重定向会在不同的浏览器中产生不同的行为

如何解决《标头重定向会在不同的浏览器中产生不同的行为》经验,为你挑选了1个好方法。

目前,我有一个可通过以下域访问的脚本

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']);

它适用于所有浏览器,不会丢失路径.



1> 小智..:

好手册说:

大多数现代客户端接受相对URI作为»Location:的参数,但是一些较旧的客户端需要绝对URI,包括方案,主机名和绝对路径.你通常可以使用$ _SERVER ['HTTP_HOST'],$ _SERVER ['PHP_SELF']和dirname()自己创建一个相对的URI:

总之,总是使用完整的URI来涵盖所有情况

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有