Avatar ·

如何在PHP中获取当前页面的完整URL?

大家好!我是PHP新手,正在尝试编写一个简单的日志系统,记录用户从哪个页面进入网站。我需要获取当前页面的完整URL,包括协议(http/https)、域名和所有GET参数。 我尝试过使用 `$_SERVER['REQUEST_URI']`,但它只返回路径,例如 `/page.php?id=123`。而我需要类似 `https://mysite.com/page.php?id=123` 的内容。我尝试结合 `$_SERVER['HTTP_HOST']`,但在某些情况下会出错,尤其是当网站通过HTTPS运行时。 以下是我当前的代码: ```php $url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ``` 问题在于: 1. 没有考虑HTTPS 2. 有时 `HTTP_HOST` 缺失或包含端口 3. 在本地服务器(OpenServer)上完全失效 请问如何正确且可靠地获取完整URL?希望有一个通用解决方案,既能用于生产环境,也能用于本地机器。 谢谢!