3

我想知道是否有更有效的方法来提供大量链接重定向。背景:我的网站每天接收数以万计的用户,我们“深度链接”到附属网站上的大量单个产品页面。

为了“隐藏”附属链接并将它们全部保存在一个地方,我目前正在从一个 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 文件相比,是否会使用数据库或动态地在服务器上施加更多负载?任何帮助/建议将不胜感激!

4

1 回答 1

3

我会做的是以下几点:

更改 URL 格式以在其中包含产品名称以用于 SEO,例如“my_new_product/1”

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

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

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

id(自动编号,唯一 id) url(重定向到的 url) description(在您的网站上制作 url 的文本)

然后,您可以构建一个简单的 CRUD 事物以轻松保持最新状态,并让您的页面提供来自数据库的链接列表。

于 2010-11-29T19:25:34.643 回答