我需要一个页面,当我加载它时,请查看键入的链接,例如:
www.test.com/myphp.php=10
如果它找到某个数字,它会重定向到另一个链接,例如:
发现www.test.com/myphp.php=10
重定向到新闻www.test.com/news/10.php
。
我该怎么做?我应该使用什么技术?
答案 0 :(得分:1)
您想要使用$_GET
变量,如此
http://www.test.com/myphp.php?p=10
对于你的php,你可以做到这一点。
header('Location: /news/' . $_GET['p'] . '.php');
die();
答案 1 :(得分:1)
首先,你的GET变量的语法有点偏。我假设您的意思是test.com/myphp.php?redirect=10
或类似名称的起始网址?因为www.test.com/myphp.php=10
语法不好。
我假设我们正在使用GET变量,如上所述:
最简单的方法是在PHP中设置位置标题:
if(array_key_exists("redirect", $_GET)){
#set header to redirect to new location
header("Location: /news/" . $_GET["redirect"] . ".php");
#don't let the page do anything else
die();
}else{
#do something if the GET variable doesn't exist
}
请注意,这种方式会引入一些安全漏洞,因此您可能希望执行更高级的操作(例如intval
GET变量,以便它们无法将脚本注入您的变量,或仅addslashes()
1}}到GET变量值)。
答案 2 :(得分:1)
Url应该带有get参数名称。 http://www.test.com/myphp.php?news=10
if(isset($_GET['news']) && is_numeric($_GET['news'])) {
$newsUrl = 'http://www.test.com/news/' . (int)$_GET['news'] . '.php';
header('location: ' . $newsUrl);
// or
// header('location: /news/' . (int)$_GET['news']);
die;
}
答案 3 :(得分:-2)
普通的旧javascript
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
如果网址是www.test.com/myphp.php?id=10 调用getQueryVariable(&#34; id&#34;)将返回10
然后您只需使用
重新路由var number = getQueryVariable('id')
window.location = "www.test.com/news/"+number+".php";