PHP重定向查询参数

时间:2018-02-06 11:54:25

标签: php url-redirection

我们说我有以下网址:

http://example.com/index.php?user/1234

我希望PHP查询做的是将用户重定向到以下URL:

http://example.com/test/index.php?user/1234

当然,该网址不仅应重定向?user/1234,还应重定向?anything/343。我想保留网址原封不动,只添加/test/,然后保留该部分。

我如何做到这一点?我所能找到的只是一般的重定向,而不是特定于URL。感谢。

4 个答案:

答案 0 :(得分:3)

如果我正确理解您的问题,您需要解析您的网址字符串并添加“测试”。到了路上。下面的代码应该只是这样:

// $fullUrl = $_SERVER['REQUEST_SCHEME']."://".$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];
$fullUrl = "http://example.com/index.php?user/1234";
// split the url
$url = parse_url($fullUrl);
$url['path'] = "/test" . $url['path'];
// create the new url with test in the path
$newUrl = $url['scheme'] . "://".$url['host'].$url['path']."?".$url['query'];
header("Location:" .$newUrl);

答案 1 :(得分:1)

我修改了Kasia Gololek的答案,以便它对我有用。这是我的问题的解决方案:

$fullUrl = $_SERVER[REQUEST_URI];
// split the url
$url = parse_url($fullUrl);
$url['path'] = "/test" . $url['path'];
// create the new url with test in the path
$newUrl = $url['path']."?".$url['query'];
header("Location:" .$newUrl);

答案 2 :(得分:0)

您可以使用PHP header('location: url') as here

网址是您预期的新目的地。

答案 3 :(得分:-1)

应该是一个简单的标题重定向

header("Location:http://example.com/test/index.php?user/1234");

如果重定位依赖于查询,则需要构建位置URL。

例如,如果您要使用的页面上有2个变量,1个是$page,另一个是$id,那么就可以这样做。

 $id = 123;
 $page = 'user';

 header("Location:http://example.com/test/index.php?".$page."/".$id);

这会产生一个

的网址
http://example.com/test/index.php?user/123