这个问题的答案是 社区的努力。编辑现有答案以改进这篇文章。它目前不接受新的答案或交互。
我使用此代码获取完整的 URL:
$actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
问题是我在我的 中使用了一些掩码.htaccess,所以我们在 URL 中看到的并不总是文件的真实路径。
.htaccess
我需要的是获取 URL,URL 中写了什么,不多也不少——完整的 URL。
我需要了解它在 Web 浏览器导航栏中的显示方式,而不是服务器上文件的真实路径。
看看$_SERVER['REQUEST_URI'],即
$_SERVER['REQUEST_URI']
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
(请注意,双引号字符串语法是完全正确的)
如果你想同时支持 HTTP 和 HTTPS,你可以使用
$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
编者注: 使用此代码具有 安全隐患 。客户端可以将 HTTP_HOST 和 REQUEST_URI 设置为它想要的任意值。