【问题标题】:Help with 301 redirects on outgoing links from my site帮助我网站的传出链接进行 301 重定向
【发布时间】:2010-11-11 21:03:36
【问题描述】:

我为通过跟踪合作伙伴的第三方网站链接到合作伙伴的公司工作。因此,例如在我们的网站上会有一个类似这样的传出链接(更改名称以保护我的工作):

<a href="link.php?link=chuckecheese">check it out kids!</a>

如果你进入link.php,你会看到我在那里定义了链接:

$outlink['chuckecheese'] = "http://partners.linktrackingisprettycool.com/x/212/CD1/$STAMP";

$STAMP 是一个时间戳,在圣诞节的中午被替换为“12-25-09-1200”。

当用户点击此链接时,他会转到 www.chuckecheese.com

这一切都很好,但它对于 SEO 的目的并不像它可能的那样好。我想让搜索引擎将其视为指向chuckecheese.com 的链接,这有助于我们的合作伙伴的页面排名并且更诚实。

我在 .htaccess 中试图制定重写规则,但我很困惑,不知道它是如何完成的。我试过了:

RewriteRule http://www.chuckecheese.com$ link.php?link=chuckecheese$ [QSA]

但这似乎不起作用。接下来我应该尝试什么?

提前感谢您的帮助。你们这里的人总是很棒,我很欣赏堆栈溢出的好人在我保持就业中所发挥的作用。

【问题讨论】:

  • 听起来像是对黑帽 SEO 的尝试,它甚至没有像你想象的那样工作
  • 对不起,我不清楚。我们链接到我们的合作伙伴,但我们通过链接文件进行。我们的合作伙伴没有从链接中获得任何好处,因为在谷歌看来,他们似乎只是从一个文档“link.php”链接到的。我们不会试图做任何不正当的事情,但我们希望合作伙伴从与我们的联系中受益。此外,我还了解到,从 pagerank 的角度来看,一个完全关闭且没有传出链接的网站会以各种方式受到影响。
  • 你为什么不能直接写到他们网站的链接?用于收集流量分析的重定向?
  • 是的,我正在使用重定向来收集流量分析。这么短的使用javascript,有没有办法做到这一点?

标签: .htaccess mod-rewrite seo http-status-code-301


【解决方案1】:

您不能为此使用重写规则来重定向用户。该请求必须由您的网络服务器处理。

您可以尝试做一些 javascript 来实现这一点。所以href是chuckecheese,但是点击后,您将document.location更改为您真正想要做的。

已编辑的赏金问题

您可以做的是根据浏览器的用户代理预处理您的链接。因此,当用户代理是 googlebot(以下字符串之一)时,您会显示http://www.chuckecheese.com 的真实网址。

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Googlebot/2.1 (+http://www.googlebot.com/bot.html)
Googlebot/2.1 (+http://www.google.com/bot.html)

当 URL 不是 googlebot 时,您会显示进行流量分析的链接。

您可以在以下 URL 找到用户代理列表:

如果 googlebot 未显示正确的用户代理(或将来会发生变化),google 建议您对 IP 地址进行反向查找。这将对性能造成很小的影响。

您可以通过使用反向 DNS 查找来验证访问您服务器的机器人确实是 Googlebot,验证该名称是否在 googlebot.com 域中,然后使用该 googlebot 名称进行正向 DNS 查找。如果您担心垃圾邮件发送者或其他麻烦制造者在访问您的网站时声称自己是 Googlebot,这将非常有用。 -Google

为进一步解释而编辑 假设您使用的是 php,您会在运行时生成链接。这是我编写的一些代码。

function getRealURL($url)
{
    // adjust this regex to match the pattern of your traffic analysis urls
    ereg("link=(.+)$",$url,$matches);
    if ($matches[1])
    {
        // adjust this so the urls come out correctly
        return "http://www.".$matches[1].".com";
    }
    else 
    {
        return $url;
    }
}
function isGoogle()
{
    switch ($_SERVER['HTTP_USER_AGENT'])
    {
        case 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)':
        case 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)':
        case 'Googlebot/2.1 (+http://www.google.com/bot.html)':
            return true;
        default:
            return false;
    }       
}
function showlink($url)
{
    $trafficAnalysisUrl = getRealURL($url);

    if (isGoogle())
    {
        return $url;
    }
    else
    {
        return $trafficAnalysisUrl;
    }
}


<html>
...
Come eat pizza at <a href='<?=showLink("link.php?link=chuckecheese")?>'>chuck e cheese!</a>
...
</html>

我怀疑谷歌会关心这样的事情,因为两个链接都指向同一个地方。 但请检查 TOS 以确定。 http://www.google.com/accounts/TOS

【讨论】:

  • 是的,我想到了,但真的不想使用 javascript,我认为有一种方法可以使用 301 来做到这一点。
  • 但是如何更改显示的链接?
  • 这会让我在使用 google 时遇到麻烦吗?似乎是故意误导他们,即使我的意图是好的。
  • 感谢并感谢您一直坚持到最后。
【解决方案2】:

你的假设并不好。你说:

我想让它搜索 引擎会将其视为指向 chuckecheese.com,这有助于我们的 当人们搜索chuck e时得分 奶酪,因为我们会被视为 链接到他们。

如果这真的对 SEO 有所帮助,那么每个人都会通过垃圾邮件链接所有出色的网站来获得 SEO 页面排名,而游戏就太简单了。链接的受益人是收件人页面/站点,而不是发件人。

【讨论】:

  • 你不能仅仅通过链接到其他页面来提高你的页面排名。其他页面需要链接到您以提高您的页面排名!
  • 我这么说我觉得很愚蠢。是的,如果 pagerank 以这种方式工作,我认为 google 不会很有用。但是,我听说不完全关闭可以获得一些 pagerank 好处,这就是我们网站现在的样子。
【解决方案3】:

嘿 PG... 链接到其他网站不会给您任何进一步的 PageRank,就像您在 Adwords 中的广告出现在一千个其他网站上不会给您带来 PageRank。是的,您的合作伙伴因与他们建立联系而受益。您所说的从开放中获得的那些好处又如何呢?根据我对您所写内容的理解,这只是另一个花哨的重定向。谷歌知道这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 2017-02-04
    • 2023-03-02
    • 2018-08-15
    相关资源
    最近更新 更多