我们说我有以下网址:
http://example.com/index.php?user/1234
我希望PHP查询做的是将用户重定向到以下URL:
http://example.com/test/index.php?user/1234
当然,该网址不仅应重定向?user/1234
,还应重定向?anything/343
。我想保留网址原封不动,只添加/test/
,然后保留该部分。
我如何做到这一点?我所能找到的只是一般的重定向,而不是特定于URL。感谢。
答案 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