在链接到内部页面时将用户重定向到外部站点?

时间:2012-06-10 05:48:36

标签: php url redirect seo

如何在链接到内部网页时将用户重定向到外部网站?

我见过这样的例子:

  • example.com/go/ksdjfksjdhfls
  • example.com/?go=http://www.new-example.com
  • ......还有更多......

如何在php中实现这一目标?

这对SEO有任何优缺点吗?

5 个答案:

答案 0 :(得分:3)

我认为这种方法没有任何好处,但有几种方法可以实现。要使用GET查询执行此操作,您只需要以下代码:

HTML:

  <a href="http://example.com/link.php?site=http://www.google.com">Google!</a>

PHP:

if (filter_var($_GET['site'], FILTER_VALIDATE_URL)) {
          header('Location: ' . $_GET['site']);
}

通过上面的示例,它实际上会将用户带到该位置,而不是:

 http://example.com/link.php?site=http://www.google.com

要在拉起远程站点时实现“本地”网址,您必须:

  • 搞乱网址重写,这可能会变得混乱,我不确定会让你做上述
  • 通过curl检索远程页面并显示它,这可能搞砸了“远程”页面上的链接
  • 使用iframe并将iframe设置为页面大小。请注意,这最后一种方法虽然最不具攻击性,但却被认为是一种潜在的安全漏洞,称为“clickjacking”,因为它用于诱骗用户点击一个页面的链接,他隐藏了到另一个站点的恶意链接。许多服务器和浏览器都在采取措施来避免这种情况(例如,谷歌不允许对其主页进行iframing),因此这也可能达到死胡同。

所以在我能想到的三种服务器端方法中,有一种可能是也可能是不可能的,并且是一种痛苦。一个人将瘫痪并在服务器上施加沉重负担。最后一个是一个已知的坏人,很可能在很多情况下不起作用。

所以我只是选择重定向,实际上,如果您不需要地址栏来显示本地网址,那么我只需要一个直接链接。

所有人都提出了一个问题:你希望完成什么?

答案 1 :(得分:1)

设置一个索引php文件,在get参数中将标题位置设置为url。

example.com/?go=http://www.new-example.com:

// example.com/index.php
<?php
if (isset($_GET['go'])) {
    $go = $_GET['go'];
    header('Location: $go');
} // else if other commands
// else (no command) load regular page
?>

example.com/go/ksdjfksjdhfls:

// example.com/go/ksdjfksjdhfls/index.php
<?php
header('Location: http://someurl.com');
?>

答案 2 :(得分:0)

example.com/?go=http://www.new-example.com

您可以使用iframe并将src属性设置为http://www.new-example.com

<!DOCTYPE HTML>
<html>
<head>

</head>

<body>
   <iframe src="http://www.new-example.com" width="100%" height="100%"></iframe>


</body>
</html>

答案 3 :(得分:0)

这是在任何输出到浏览器之前开始的

<?
header('location:example.com\index.php');
?>

答案 4 :(得分:0)

我使用.htaccess规则。不需要PHP。

Redirect 307 /go/somewhere-else http://www.my-affiliate-link.com/

因此,访问http://www.mywebsite.com/go/somewhere-else会重定向到http://www.my-affiliate-link.com/

在我的网站上,我使用“nofollow”告诉搜索引擎不要关注链接。 307状态代码表示“临时重定向”。

<a href="http://www.mywebsite.com/go/somewhere-else" rel="nofollow">Click here!</a>