我有一个简单的问题,对于这里的大多数人来说应该很简单。在一个网站上,我通过一个名为 visit.php 的简单 PHP 重定向来重定向我的所有链接
我正在像这样格式化我的出站重定向..
visit.php?url=google.com
visit.php?url=yahoo.com
visit.php?url=aol.com
然后我的visit.php看起来像这样......
<?php
$url = htmlspecialchars($_GET['url']);
if($url == 'google.com'){
header("Location: http://google.com");
}
if($url == 'yahoo.com'){
header("Location: http://yahoo.com");
}
if($url == 'aol.com'){
header("Location: http://aol.com");
}
else {
header("Location: http://mydomain.com/404");
}
我遇到的问题是 else 语句。当我从脚本中删除它时,一切都按预期工作。当我把它放进去时(所以任何拼写错误都会重定向到 404),它会覆盖我在脚本中定义的所有链接并重定向到 404。
我遇到的另一个问题是不使用 ?url= 变量时。如果我网站上的用户将链接复制到他们的剪贴板并将其更改为除 ?url= 之外的任何内容,我想重定向到 404。我尝试用来完成此操作的代码如下所示...
if(!isset($_GET['url'])){
header("Location: http://mydomain.com/404");
}
我的逻辑是……如果没有设置 ?url= 变量,只需重定向到 404,因为肯定有人在玩。如果有人加载 visit.php?id=blah 它应该只是重定向到 404。
但是,我没有得到预期的行为。总的来说,我对 PHP 和编程很陌生……所以如果这些问题是幼儿园级别的,请原谅我。谢谢。