我使用以下代码获取完整的URL:
$actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
问题是我在我的.htaccess
中使用了一些掩码,所以我们在URL中看到的并不总是文件的真实路径.
我需要的是获取URL,URL中写的内容,不多也不少完整的URL.
我需要了解它在web浏览器的导航栏中的显示方式,而不是服务器上文件的实际路径.
我使用以下代码获取完整的URL:
$actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
问题是我在我的.htaccess
中使用了一些掩码,所以我们在URL中看到的并不总是文件的真实路径.
我需要的是获取URL,URL中写的内容,不多也不少完整的URL.
我需要了解它在web浏览器的导航栏中的显示方式,而不是服务器上文件的实际路径.
看一下$_SERVER['REQUEST_URI']
,即
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
(请注意,双引号字符串语法为perfectly correct)
如果您想同时支持HTTP和HTTPS,可以使用
$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
Editor's note:使用这个代码有security implications个.客户端可以将HTTP_主机和请求_URI设置为它想要的任意值.