为了账号安全,请及时绑定邮箱和手机立即绑定

使用 PHP 重定向并跳过特定参数

使用 PHP 重定向并跳过特定参数

PHP
陪伴而非守候 2023-04-21 15:02:08
由于我已经开始在我的网站中使用友好的 URLS,我将每个页面重定向到新版本,前提是注册用户的个人资料中有“用户名”。所以,我重定向自:https://tribbr.me/post.php?id=850和:header("Location:/".$if_username."/post/".$post_id."?".$_SERVER['QUERY_STRING']); exit();保留所有 GET 参数....但问题是这个标头请求,显然也将$_SERVER['QUERY_STRING']帖子 ID 添加到 URL,并且在重定向时,这是最终 URL:https://tribbr.me/TribeMasters/post/850?id=850是否可以只将id=850参数跳过到 URL 重定向?因为它是一个重复的参数:post/850并且id=850是相同的。谢谢你帮助我 :)
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

但是如果你不熟悉Regex,这是另一种方式。


function removeGetParam($param){


 $params = $_GET;


 // removing the key

 unset($params[$param]); 


 // joining and returning the rest

 return implode(',', array_map(function ($value, $key) { 

            return $key.'='.$value;

          },$params, array_keys($params))

        );

}


$filtered_params = removeGetParam('id');

header("Location:/".$if_username."/post/".$post_id."?".$filtered_params);


查看完整回答
反对 回复 2023-04-21
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

function remove_querystring_var($url, $key) { 

    $url = preg_replace('/(.*)(?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&'); 

    $url = substr($url, 0, -1); 

    return $url; 

}


查看完整回答
反对 回复 2023-04-21
  • 2 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信