由于我已经开始在我的网站中使用友好的 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);
杨__羊羊
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;
}
- 2 回答
- 0 关注
- 132 浏览
添加回答
举报
0/150
提交
取消