我想仅重定向外部链接而不是我网站的链接,例如:
重定向:http://google.com请勿重定向: http://mysite.com/page.php
$url = $_GET['url'];
header("Refresh: 30; url=$url");
我已经做了一些事情,但它没有奏效:
if ($url == $host);
任何人都可以帮我重定向外部链接吗?
答案 0 :(得分:3)
您可以使用正则表达式来执行此操作,但更容易使用parse_url()
,它旨在返回URL的组件部分并引用它们以用于您需要[测试]的任何目的:
<?php
// identify host from GET URL and compare
if (parse_url($_GET['url'], PHP_URL_HOST) !== 'mysite.com') {
// Redirect after 3 seconds
header("Refresh: 3; url=".$_GET['url']);
}
?>
您还可以提取整个URL组件数组[ scheme,host,port,user,pass,path,query,fragment ],使它们全部可用:
<?php
// Your URL from whatever source
$url = $_GET['url'];
// Parse it and create an array of URL components
$purl = parse_url($url);
// identify host component and compare
if ($purl['host'] !== 'mysite.com') {
// Redirect after 3 seconds
header("Refresh: 3; url=$url");
}
?>