2010-11-29 23 views
3

Je me demande s'il existe un moyen plus efficace de traiter un grand nombre de redirections de liens. Pour le fond: mon site reçoit des dizaines de milliers d'utilisateurs par jour, et nous "deep link" à un grand nombre de pages de produits individuels sur les sites affiliés. Pour «cacher» les liens d'affiliation et les garder tous en un seul endroit, je suis en train de servir tous nos liens d'affiliation à partir d'un seul fichier PHP, par exemple. un utilisateur clique sur mysite.com/go.php?id=1 et est redirigé vers la page du site du marchand, en annexe de notre cookie affilié, où vous pouvez acheter le produit. Le code que je utilise est comme suit:Vous cherchez un moyen plus efficace de servir de nombreuses redirections de liens?

<?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']]); 
?> 

Le problème que je vais avoir est que nous associons à un bon nombre de produits uniques chaque jour et le fichier php contient maintenant 11K + liens et augmente chaque jour. J'ai déjà remarqué qu'il faut un certain temps pour télécharger et éditer le fichier via FTP, car il fait près de 2MB, et les liens ne fonctionnent pas sur notre site pendant le téléchargement du fichier. Je ne sais pas non plus s'il est bon que le serveur serve autant de liens à travers un seul fichier php - je n'ai pas encore remarqué de ralentissements, mais je peux certainement le constater.

Donc, je suis à la recherche d'une autre option. Je pensais simplement commencer un nouveau fichier .php (par exemple go2.php) pour héberger plus de liens, car go.php est si grand, mais cela semble inefficace. Dois-je utiliser une base de données pour cela? Je cours aussi Wordpress donc je suis trop préoccupé par l'utilisation de mySQL, et le faire en PHP semble plus rapide, mais encore une fois, je ne suis pas sûr. Mon autre option est de trouver un moyen de créer dynamiquement ces liens affiliés, c.-à-d. Créer un autre fichier PHP qui prendra l'URL d'un produit et y ajouter notre code d'affiliation, éliminant la nécessité de mettre à jour manuellement un fichier php avec tous ces liens, cependant je ne suis pas sûr de l'impact sur le serveur si nous servons près de 100K clics par jour grâce à quelque chose comme ça.

Des pensées? Est-ce que la méthode que j'utilise est l'orthographe d'une mort certaine pour notre serveur, ou dois-je garder les choses telles quelles pour les performances? Serait-ce faire avec une base de données ou dynamiquement mettre plus de charge sur le serveur que le simple fichier php que j'utilise maintenant? Toute aide/conseil serait grandement appréciée!

Répondre

3

Ce que je voudrais faire est la suivante:

Modifiez le format d'URL pour avoir le nom du produit dans des fins de référencement, comme quelque chose comme « my_new_product/1 »

Ensuite, utilisez mod_rewrite pour mapper URL vers une page avec une chaîne de requête tels que:

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

Ensuite, créez une table de base de données contenant les champs suivants:

id (autonumber, identifiant unique) url (l'URL de redirection) Description (le texte pour l'URL sur votre site)

Ensuite, vous pouvez construire une chose simple CRUD de garder ceux à jour facilement et laissez votre les pages servent la liste des liens de la base de données.