使用 HTTP 查询字符串变量的 php 重定向

2022-08-30 10:49:29

atm 我使用以下四行将用户重定向到我网站上的另一个页面:

<?php
    header("Status: 301 Moved Permanently");
    header("Location: ./content/index.html");
    exit;
?>

但是使用HTTP查询字符串变量存在一个问题,例如
它们不能被附加到url中,这是可以理解的。http://< url >?param=blah

有没有一个明智的举措来实现这一点?

问候


答案 1
<?php
    header("Status: 301 Moved Permanently");
    header("Location:./content/index.html?". $_SERVER['QUERY_STRING']);
    exit;
?>

答案 2

要执行重定向并确保在未传递查询字符串时不显示额外的问号,请使用以下命令

function preserve_qs() {
    if (empty($_SERVER['QUERY_STRING']) && strpos($_SERVER['REQUEST_URI'], "?") === false) {
        return "";
    }
    return "?" . $_SERVER['QUERY_STRING'];
}
header("Status: 301 Moved Permanently");
header("Location: ./content/index.html" . preserve_qs());

推荐