仅重定向外部链接

时间:2013-04-18 22:31:07

标签: php redirect

我想仅重定向外部链接而不是我网站的链接,例如:

  

重定向:http://google.com请勿重定向:   http://mysite.com/page.php

$url = $_GET['url'];
header("Refresh: 30; url=$url");

我已经做了一些事情,但它没有奏效:

if ($url == $host);

任何人都可以帮我重定向外部链接吗?

1 个答案:

答案 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");

    }

?>