我使用以下代码获取完整的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设置为它想要的任意值.

Php相关问答推荐

ngnix php8.0-fPM主要脚本未知

在保留唯一键值对的情况下高效合并嵌套数组

PHP:从数组中获取唯一的数字组合

msgraph-sdk-php v2如何传递skiptoken到request?

使用列入黑名单的单词和自定义业务逻辑的组合将特定的子字符串包装在HTML标记中

使注册字段UserMeta值对于WooCommerce中的每个用户是唯一的

是否重新排序多维数组元素以将所有子数组中的子数组移动到元素列表的底部?

从WooCommerce订单项目获取Dokan卖家详细信息

Regex|PHP捕获json字符串中的每个非法双引号

在具有Angular 的 Laravel 应用程序中,不显示图像

有没有办法像引用枚举一样引用注册表中的对象?

用户注册表单中的 HTTP 错误 405

服务器升级到新的mysql版本8.0.34后查询错误

使用帖子 ID 更新 wp 帖子

如何处理 Null 上的 array_shift() ?

在 WooCommerce wc_get_products 函数中处理自定义分类法

当所有对象都属于同一类型时,我可以省略 PHP in_array() 中的 strict 参数吗?

在PHP WordPress插件中使用变量连接路径时的问题解决方法

使用来自 PHP 表单的数据更新 xml 命名空间

PHP 日期格式:ISO8601 与 ISO8601_EXPANDED