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

由于我已经开始在我的网站中使用友好的 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是相同的。

谢谢你帮助我 :)


陪伴而非守候
浏览 133回答 2
2回答

繁花不似锦

但是如果你不熟悉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);

杨__羊羊

function remove_querystring_var($url, $key) {     $url = preg_replace('/(.*)(?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&');     $url = substr($url, 0, -1);     return $url; }
打开App,查看更多内容
随时随地看视频慕课网APP