小编典典

获取 PHP 中的完整 URL

all

这个问题的答案是 社区的努力。编辑现有答案以改进这篇文章。它目前不接受新的答案或交互。

我使用此代码获取完整的 URL:

$actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

问题是我在我的 中使用了一些掩码.htaccess,所以我们在 URL 中看到的并不总是文件的真实路径。

我需要的是获取 URL,URL 中写了什么,不多也不少——完整的 URL。

我需要了解它在 Web 浏览器导航栏中的显示方式,而不是服务器上文件的真实路径。


阅读 170

收藏
2022-02-28

共1个答案

小编典典

看看$_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 设置为它想要的任意值。

2022-02-28