帮助我的网站上的外发链接上的301重定向

时间:2009-07-17 23:07:37

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

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

<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]

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

提前感谢您的帮助。你们这里的人总是很棒,而且我很欣赏堆栈溢出的优秀人才在我这里继续工作。

3 个答案:

答案 0 :(得分:2)

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

您可以尝试使用一些javascript来实现此目的。所以href是chuckecheese,但是onclick,你将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)

如果网址不是googlebot,则会显示进行流量分析的链接。

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

如果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

答案 1 :(得分:2)

你的假设并不好。你说:

  

我想让它成为搜索   引擎会将其视为链接   chuckecheese.com,这有助于我们的   当人们搜索查克时得分   奶酪因为我们会被视为   将权利与他们联系起来。

如果这真的有助于SEO明智,每个人都会垃圾链接所有伟大的网站只是为了获得SEO pagerank和游戏将是太容易了。链接的受益人是收件人页面/站点,而不是发件人。

答案 2 :(得分:0)

嘿PG ...链接到其他网站不会给你任何进一步的PageRank,因为让你的广告出现在其他数千个网站上的Adwords不会给你PageRank。是的,您的合作伙伴可以通过链接到他们而受益。那么你从开放中谈到的收益会怎样?根据我对你所写内容的理解,这只是另一种花哨的重定向。谷歌知道这一点。

相关问题