新闻详情

新闻详情

首页 / 资讯中心 / 详情

PHP从完整的URL中提取出核心路径的方式

发布时间:2026/9/28 3:28:26来源:尧图网络
PHP从完整的URL中提取出核心路径的方式
$_SERVER[REQUEST_URI]是 PHP 中用于获取当前请求的“路径”和“查询字符串”的超全局变量。提供的 URLhttp://site.com/app/index.php/admin/user/delete?id1$_SERVER[REQUEST_URI]获取到的内容是/app/index.php/admin/user/delete?id1详细拆解$_SERVER[REQUEST_URI]包含了 URL 中域名之后、锚点#之前的所有内容。它由两部分组成Path路径:/app/index.php/admin/user/deleteQuery String查询字符串:id1(即?及其后面的部分)这两部分直接拼接在一起中间没有额外的字符。对比其他相关变量变量名获取的内容说明$_SERVER[REQUEST_URI]/app/index.php/admin/user/delete?id1路径 查询字符串(最常用)$_SERVER[SCRIPT_NAME]/app/index.php入口文件的路径 (通常用于路由分发时剔除)$_SERVER[QUERY_STRING]id1仅查询字符串部分$_SERVER[PHP_SELF]/app/index.php/admin/user/delete当前执行脚本的路径 (不包含查询字符串但在某些服务器配置下可能不稳定)代码示例12345678910111213// 第一步获取完整请求 URI$rawUri$_SERVER[REQUEST_URI];// 结果: /app/index.php/admin/user/delete?id1// 第二步只取路径部分去除 ?id1pathOnly parse_url($rawUri, PHP_URL_PATH);// 结果: /app/index.php/admin/user/delete// 第三步去除入口文件名 (假设入口文件是 index.php)$entryPoint/app/index.php;// 通常来自 $_SERVER[SCRIPT_NAME]$finalPathstr_replace($entryPoint,,$pathOnly);// 结果: /admin/user/delete// 第四步清理斜杠$cleanPath trim($finalPath,/);// 结果: admin/user/delete伪静态伪静态的核心作用是让 Web 服务器如 Nginx 或 Apache在请求到达 PHP 之前把“好看的 URL”内部重写成“带参数的入口文件 URL”。当使用 Nginx 进行 URL 重写时当你在 Nginx 中配置了 URL 重写也称为伪静态设置用户的原始请求 URL 会被服务器重写为另一种形式然后再发送到后端的 PHP 脚本。这种情况下有两种主要方式来处理重写后的请求1. ‌使用 $request_uri‌ 在 Nginx 中重写在 Nginx 配置中你可以使用rewrite指令来重写请求。例如123location / {rewrite ^/product/([0-9])$ /index.php?pageproductid$1 last;}在这个例子中所有访问/product/123的请求都会被重写为/index.php?pageproductid123。在这种情况下$_SERVER[REQUEST_URI]在 PHP 中将反映为/index.php?pageproductid123而不是原始的/product/123。2. ‌保持原始 URI 使用 $uri‌为了在 PHP 中获取原始 URI即在浏览器地址栏中用户看到的 URL你可以在 Nginx 中使用$uri或$request_uri并将其传递到 PHP。例如123location / {try_files $uri $uri/ /index.php?$args;}或者更明确地1234location / {rewrite ^/product/([0-9])$ /index.php?pageproductid$1 last;try_files $uri $uri/ /index.php?original_uri$request_uri$args;}结论如果你希望在 PHP 中获取重写后的请求 URI那么$_SERVER[REQUEST_URI]将反映重写后的结果。如果你需要在 PHP 中获取并保留原始 URI你需要在 Nginx 配置中显式地将原始 URI 作为查询参数传递到 PHP 脚本中然后在 PHP 中通过$_GET或$_REQUEST访问这个参数。例如使用original_uri$request_uri。通过这种方式你可以灵活地控制 PHP 脚本中可用的 URI 信息无论是原始的还是经过重写的。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ADS射频版图优化:EM-Cosimulation与OPTIM自动化闭环实战 2026/9/28 5:37:47

ADS射频版图优化:EM-Cosimulation与OPTIM自动化闭环实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
数据分析实战全链路:从SQL到Python,从业务理解到AI辅助的完整指南 2026/9/28 5:37:47

数据分析实战全链路:从SQL到Python,从业务理解到AI辅助的完整指南

这几年身边问“数据分析”怎么入门、怎么做项目的人特别多,但真正能把一件事说清楚的人很少。我在一线做了十几年数据分析相关的活儿,从最基础的Excel报表,到Python建模,再到集群上的Spark任务,都摸过一遍。说实话&…

阅读更多 →
微信聊天机器人开发实战:从自动回复到企业微信落地 2026/9/28 5:37:47

微信聊天机器人开发实战:从自动回复到企业微信落地

先交代一下背景。前几天有个做电商的朋友来找我,说客服忙不过来,想让我帮忙搞一个微信聊天机器人,先顶一版自动回复。我第一反应是:这事儿能走官方通道,但绝不是装个软件就能自动回复那么简单。微信官方并没有给个人微…

阅读更多 →
Docker 快速部署 Oracle 19c:镜像选型、参数配置与常见坑全解析 2026/9/28 5:37:47

Docker 快速部署 Oracle 19c:镜像选型、参数配置与常见坑全解析

“docker 安装oracle19C”这句话,最近在我这边的开发群里出现的频率非常高。原因也很好理解:想用 Oracle 19c,但不想在本地或者服务器上搞一套完整的 Oracle 环境——安装界面繁琐、系统参数要求多、配置错一步就是半天;装完之后想…

阅读更多 →
Docker网络管理从入门到实战:bridge、端口映射与跨主机通信指南 2026/9/28 5:37:47

Docker网络管理从入门到实战:bridge、端口映射与跨主机通信指南

1. 为什么我不建议直接用默认的bridge网络:Docker网络管理的入门真相很多刚接触Docker的人,可能都经历过这样一个阶段:装好Docker,跑起容器,docker ps能看到进程,应用也能访问,就觉得"网络…

阅读更多 →
ESP32迷你MP3播放器实战:Helix解码+I2S输出全解析 2026/9/28 5:37:40

ESP32迷你MP3播放器实战:Helix解码+I2S输出全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉