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

use*_*248 1 php url seo redirect

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

我见过这样的例子:

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

这是如何在 php 中实现的?

这对于 SEO 有什么优点/缺点吗?

Ant*_*ony 5

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

HTML:

  <a href="http://example.com/link.php?site=http://www.google.com">Google!</a>
Run Code Online (Sandbox Code Playgroud)

PHP:

if (filter_var($_GET['site'], FILTER_VALIDATE_URL)) {
          header('Location: ' . $_GET['site']);
}
Run Code Online (Sandbox Code Playgroud)

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

 http://example.com/link.php?site=http://www.google.com
Run Code Online (Sandbox Code Playgroud)

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

  • 混乱的 URL 重写,这可能会变得混乱,而且我不确定是否会让您执行上述操作
  • 通过curl检索远程页面并显示它,这可能会搞乱“远程”页面上的链接
  • 使用 iframe 并将 iframe 设置为页面的大小。请注意,最后一种方法虽然攻击性最小,但被认为是一种潜在的安全漏洞,称为“点击劫持”,因为它用于诱骗用户单击一个页面的链接,该页面隐藏了指向另一个站点的恶意链接。许多服务器和浏览器正在采取措施避免这种情况(例如,谷歌不允许其主页使用 iframe),因此这也可能进入死胡同。

因此,在我能想到的三种服务器端方法中,其中一种可能可行,也可能不可能,而且很痛苦。一个人会瘫痪并给服务器带来沉重的负担。最后一个是已知的坏人,可能不适用于很多情况。

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

所有这些都提出了一个问题:您希望实现什么目标?