PHP – 将页面重定向到没有协议的URL?
发布时间:2020-12-13 16:58:47 所属栏目:PHP教程 来源:网络整理
导读:我遇到了麻烦,不知道如何解决这个问题. 我有一个网站www.example.com.它正在移动浏览器上打开,我必须重定向到某个东西://在一个动作触发重定向后. 无论我怎么努力,我都无法重定向到某些东西://,当我这样做时: ?php header('Location:something://');
我遇到了麻烦,不知道如何解决这个问题.
我有一个网站www.example.com.它正在移动浏览器上打开,我必须重定向到某个东西://在一个动作触发重定向后. 无论我怎么努力,我都无法重定向到某些东西://,当我这样做时: <?php header('Location:something://'); ?>我得到的是:http://www.example.com/something://. 我一直在尝试使用JS(location.replace.href,location.replace等),但也没有运气. 如何强制URL改变我想要的方式? 解决方法
RFC 2616说:
其中absoluteURI在RFC 2396中指定. absoluteURI = scheme ":" ( hier_part | opaque_part ) relativeURI = ( net_path | abs_path | rel_path ) [ "?" query ] hier_part = ( net_path | abs_path ) [ "?" query ] opaque_part = uric_no_slash *uric uric_no_slash = unreserved | escaped | ";" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," net_path = "//" authority [ abs_path ] abs_path = "/" path_segments authority = server | reg_name reg_name = 1*( unreserved | escaped | "$" | "," | ";" | ":" | "@" | "&" | "=" | "+" ) server = [ [ userinfo "@" ] hostport ] userinfo = *( unreserved | escaped | ";" | ":" | "&" | "=" | "+" | "$" | "," ) hostport = host [ ":" port ] host = hostname | IPv4address hostname = *( domainlabel "." ) toplabel [ "." ] domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum toplabel = alpha | alpha *( alphanum | "-" ) alphanum IPv4address = 1*digit "." 1*digit "." 1*digit "." 1*digit port = *digit 由此,如果您使用的是://协议,则需要指定权限部分 – 斜杠不能是字符串的最后部分,例如东西://例子 但是,最终调用重定向的位置始终是客户端的浏览器,出于安全原因,可能会拒绝重定向到非HTTP(S)URL. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |