PHP将域重定向到正确的域

时间:2015-06-22 13:51:27

标签: php redirect url-redirection

我有两个网站(domain1.com和domain2.com),其中包含指向basedomain.com网站的链接按钮。 在basedomain.com我有一个按钮链接回domain1.com

如何将用户重定向回他们来自的网站(domain1.com或domain2.com)

在basedomain.com我有一个简单的href链接:

<a href="http://domain1.com/" >Go back to Homepage</a>

4 个答案:

答案 0 :(得分:2)

从&#39;添加&#39;的链接域名到您的basedomain链接,如下所示:

<a href="http://basedomain.com?from=domain1.com">

可选您可以为链接添加一些安全性,以验证来自&#39;来自&#39;使用HMAC,部分没有改变。或者匹配&#39;来自&#39;您的基础域中的值与包含可能的&#39;来自&#39;的白名单相对应。 URL&#39; S

希望这有帮助吗?

修改

现在最简单的方法是使用白名单变体。为此,您必须执行以下步骤:

  1. 创建一个指向每个(子)域的basedomain的链接,就像我上面所做的那样。
  2. &#39;来自&#39; var包含当前域的标识符,例如名称(domain1.com)
  3. 在您的basedomain上构建一个包含有效enrties的数组,如下所示:

    $validDomains = [
        'domain1.com' => 'http://www.domain1.com/',
        'domain2.com' => 'http://www.domain2.com/',
        ....
    ];
    
  4. 在您的基础域上构建反向链接,首先要检查&#39;表格&#39;针对validDomains的密钥。如果密钥存在,请将validDomains的值添加为href链接:

    $linkForYourHref = null;
    if (!empty($_GET['form']) && isset($validDomains[$_GET['form']))  {
        $linkForYourHref = $validDomains[$_GET['form'];
    }
    
    
    //button code
    if (!is_null($linkForYourHref))   {
         //link to $linkForYourHref
    }
    
  5. 另一种选择是验证您的&#39;来自&#39;通过向URL添加哈希的基本链接的一部分,如下所示:

    <a href="http://basedomain.com?from=domain1.com&key=theHMACkey">
    

    有关该内容的详情,请参阅Paragonie

答案 1 :(得分:1)

您可以使用

  

HTTP_REFERER - 包含用户来自的前一个网址

  • 将url存储在变量中并将其输出到href

     <?php 
        if($_SERVER['HTTP_REFERER']!=""){
              $link = $_SERVER['HTTP_REFERER'];
        } else {
             $link = "http://www.default_link.com";
        }
    
        echo '<a href="'.$link.'" > Go back </a>';
    
    ?>
    

答案 2 :(得分:0)

您可以使用

header("Location: http://basedomain.com");

答案 3 :(得分:0)

使用

 $refer = $_SERVER['HTTP_REFERER'];

获取域名。

并使用

 header('Location: '.$refer);

重定向。