web-dev-qa-db-fra.com

Redirection du lien hypertexte de l'image vers l'article sur lequel l'image a été utilisée; où / comment stocker les informations de connexion?

J'ai une application dans node.js et je souhaite créer un itinéraire qui redirige tous les liens hypertextes vers les images vers l'article/l'URL sur lequel l'image a été utilisée.

Mais puisque toutes les images sont stockées dans le répertoire /public/img et que les URL de l'article sont générés par programme, comment puis-je attacher chaque image à son article? ..dans une manière qui me permettrait de rediriger tous les liens hypertextes vers les images vers l'article/URL sur lequel l'image a été utilisée?

Par exemple,

Mon article est

http://www.site.com/blog/archives/2013/article-slug/

et il utilise l'image

http://www.site.com/img/that-image.jpg

car toutes les images sont stockées dans /public/img dir.

Ensuite, si quelqu'un fait un lien direct vers l'image http://www.site.com/img/that-image.jpg, comment puis-je rediriger vers l'article qu'il utilisait dans http://www.site.com/blog/archives/2013/article-slug/? (Je peux vérifier s'il y avait un lien direct probablement en vérifiant l'en-tête referrer)

Mais comment puis-je stocker les informations pertinentes sur quelle image est utilisée dans quel article et comment puis-je utiliser ces informations pour effectuer la redirection?

1
laggingreflex

Si vous voulez créer un lien entre l'image et l'article, vous pouvez inclure votre image dans un lien:

<a href="/my/url/to/my/article.html">
    <img src="/my/url/to/my/image.png" width="42" height="42">
</a>

Lorsque les gens cliquent sur votre image, ils sont dirigés vers l'article correspondant.

1

Voici quelques règles . Htaccess qui feront la redirection souhaitée:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.example\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule img/that-image\.jpg$ /blog/archives/2013/article-slug/ [R]

Vous auriez besoin d'un ensemble de ces règles de réécriture pour chacune de vos images pour les rediriger au bon endroit. Si vous avez beaucoup d'articles, cela ne fonctionnera probablement pas bien. Des centaines de règles de réécriture peuvent réellement ralentir un serveur.

Alternativement, vous pouvez créer un contrôleur frontal pour votre répertoire d’images et servir les images par programme.

Même dans ce cas, je ne recommanderais pas cette approche. Si les images sont reliées à chaud depuis un autre site, les balises <img>, l'autre site verront des liens rompus. Au lieu de rediriger vers l'article, je vous recommande de rediriger vers un gif "hotlinking allowed interdit". De cette façon, les utilisateurs voient un message d'erreur pertinent.

0
Stephen Ostermiller