You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取URL后追加的任意字符并实现指定场景下的PHP重定向功能

PHP重定向逻辑修复方案

原有代码问题

  • 硬编码了固定URL,没有获取用户实际访问的请求地址,无法判断当前访问的路径是否有追加内容
  • 判断逻辑不符合需求:现有规则只要URL包含/且不包含/a就触发跳转,完全匹配不了「脚本路径后无额外内容才跳转」的要求

修复后代码

<?php
$target_url = 'https://stefan-momcilovic.com';
// 提取请求的完整URI
$request_uri = $_SERVER['REQUEST_URI'];
// 裁剪掉查询参数,仅保留路径部分
$request_path = strtok($request_uri, '?');
// 获取当前脚本自身的访问路径
$script_path = $_SERVER['SCRIPT_NAME'];

// 路径归一化处理后对比,相等则说明脚本后无额外路径
if (trim($request_path, '/') === trim($script_path, '/')) {
    // 301为永久重定向,302为临时重定向,可按需调整
    header('Location: ' . $target_url, true, 302);
    // 重定向后必须终止后续代码执行
    exit;
}
?>

逻辑说明

  • 直接对比请求路径和脚本路径,无需依赖PATH_INFO配置,兼容性更强
  • 提前裁剪掉查询参数部分,避免?id=1这类查询字符串干扰判断
  • 对路径做了首尾斜杠的归一化处理,避免不同服务器的路径格式差异导致判断失效
  • 重定向后新增exit终止逻辑,避免后续代码意外执行

内容的提问来源于stack exchange,提问作者Stefan Momcilovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 10:21:03