我正在尝试创建一个页面,在?q=
之后将客户端重定向到URL。例如,http://example.com/?q=http://www.google.com
会将用户重定向到http://www.google.com
。根据{{1}}之后的网址
答案 0 :(得分:1)
您没有指定使用的编程语言,如果您使用的是PHP,则可以执行此操作:
<?php
if (isset($_GET['q']) && !empty($_GET['q'])) {
header('Location: '.$_GET['q']);
}
?>
您可以选择验证网址以防止错误。确保您使用的是PHP版本(PHP&gt; 5.2.13)。请检查此问题:Why FILTER_VALIDATE_URL return FALSE for only this url?
<?php
if (isset($_GET['q']) && !empty($_GET['q'])) {
if(filter_var($_GET['q'], FILTER_VALIDATE_URL)){
header('Location: '.$_GET['q']);
}else{
echo "Invalid URL";
}
}
&GT;
答案 1 :(得分:1)
从地址栏中的所有变量中取出一个数组:
var query = {};
window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,
function(m,key,value) { query[key] = value; });
在随机Google搜索中测试,该对象看起来像:
aqs: "chrome.0.69i59j69i65l3j69i61j0.1762j0j4"
es_sm: "0"
ie: "UTF-8"
oq: "random"
q: "random"
sourceid: "chrome"
因此,找到您的q
变量并重定向到它:
var query = {};
window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,
function(m,key,value) { query[key] = value; });
location.href = query['q'];
答案 2 :(得分:0)
JS
var lnk = location.href.split( '?q=' );
location.href = lnk[1];
PHP
header( 'Location: ' . $_GET['q'] );