寻找更有效的方式来服务众多链接重定向?

时间:2010-11-29 19:14:31

标签: php mysql wordpress affiliate

我想知道是否有更有效的方式来提供大量的链接重定向。对于背景:我的网站每天接收数万名用户,我们“deep link”到联盟网站上的大量个别产品页面。

要“隐藏”联属网络链接并将它们全部保存在一个位置,我目前正在通过单个PHP文件提供所有联盟链接,例如:用户点击mysite.com/go.php?id=1并转到商家网站上的页面,附上我们的会员cookie,您可以在其中购买该产品。我正在使用的代码如下:

<?php

$path = array(
‘1′ =>  ‘http://affiliatelink1.com’,
‘2′ =>  ‘http://affiliatelink2.com’,
‘3′ =>  ‘http://affiliatelink3.com’,

);

if (array_key_exists($_GET['id'], $path))
header(‘Location: ‘ .$path[$_GET['id']]);
?>

我遇到的问题是我们每天都链接到许多独特的产品,php文件现在包含11K +链接,并且每天都在增长。我已经注意到,通过FTP简单地下载和编辑文件需要很长时间,因为它的大小接近2MB,并且在上传文件时链接在我们的网站上不起作用。我也不知道服务器是否通过单个php文件提供许多链接是好的 - 我还没有注意到任何减速,但是当然可以看到发生这种情况。

所以我正在寻找另一种选择。我想只是启动一个新的.php文件(例如go2.php)来容纳更多的链接,因为go.php太大了,但这似乎效率低下。我应该使用数据库吗?我也在运行WordPress,所以我担心过多地使用mySQL,而只是在PHP中使用它似乎更快,但是,我不确定。

我的另一个选择是找到一种动态创建这些联盟链接的方法,即创建另一个PHP文件,该文件将获取产品的URL并附加我们的联盟代码,从而无需手动更新所有的php文件这些链接,但是如果我们通过类似的方式每天提供近10万次点击,我不确定对服务器的影响。

有什么想法?我正在使用的方法是为我们的服务器拼写一定的死亡,还是应该保持性能方面的东西?用数据库做这个或者动态地在服务器上加载比我现在使用的简单php文件更多的负载?任何帮助/建议将不胜感激!

1 个答案:

答案 0 :(得分:3)

我将做的是以下内容:

更改网址格式以在其中包含产品名称以用于搜索引擎优化目的,例如“my_new_product / 1”

然后使用mod_rewrite将该URL映射到具有查询字符串的页面,例如:

Rewriterule ^([a-zA-Z0-9_-]*)/([0-9]*)$ index.php?id=$2 [L]

然后创建一个包含以下字段的数据库表:

id(自动编号,唯一ID) url(重定向到的url) 说明(在您的网站上制作网址的文字)

然后,您可以构建一个简单的CRUD来轻松更新这些内容,并让您的页面提供来自数据库的链接列表。