假设我有一个参数化的网址,以重定向到其他网址。
示例:
http://XxxXX.net/redirect.php?param1={param1}¶m2={param2}¶m3={param3}¶m4={param4}
我在redirect.php中有以下内容
<html><head>
<script>
function getURLParameter(name) {
return decodeURI(
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, null])[1] || ''
);
}
</script>
<script>
var param1 = getURLParameter('param1');
var param2 = getURLParameter('param2');
var param3 = getURLParameter('param3');
var param4 = getURLParameter('param4');
var url = 'http://xxxx.xxxxx.net/yyyy/'+param1+'?param2='+param2+'¶m3='+param3+'¶m4='+param4';
</script>
</head>
<?php
header('Location: url');
?>
<body>
</body></html>
现在,我们的想法是来自第一个调用redirect.php的url的参数可以填充我想要的recirect.php。
然后根据收到的参数重定向到动态网址。
这可能吗?我的代码可能有问题,请帮助我。
答案 0 :(得分:2)
即使这个问题有一个公认的答案,我提供以下解决方案,因为:
然后根据收到的参数重定向到动态网址。
示例网址:http://localhost/test.php?hello=world&foo=bar
获取查询字符串参数:
$query = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
parse_str($query, $result);
echo '<pre>';
print_r($result);
echo '</pre>';
输出:
Array
(
[hello] => world
[foo] => bar
)
执行重定向:
header('Location: http://www.example.com/?' . http_build_query($result));
这会重定向到:http://www.example.com/?hello=world&foo=bar
答案 1 :(得分:1)
你需要在PHP中进行重定向吗?
如果没有,您可以window.location = url;
或window.location.replace(url);