web-dev-qa-db-fra.com

Comment rediriger les chemins d'images directs vers mon site Web?

J'ai récemment remarqué que certaines des images de mon site Wordpress sont les pages les plus visitées, selon Google Analytics. Les images peuvent être consultées en cliquant dessus. Le résultat était que les pages étaient ouvertes dans un onglet séparé (pas de lightbox, etc.). Je l'ai maintenant désactivé. Il faut maintenant cliquer avec le bouton droit de la souris et dire "ouvrir l'image dans un nouvel onglet" pour obtenir les mêmes résultats qu'auparavant. J'aimerais quand même savoir comment cela se produit et comment je peux rediriger quelqu'un qui accède au chemin d'accès direct à l'image vers la page où l'image est affichée.

J'ai remarqué que YoastSEO aborde ce problème ici: https://kb.yoast.com/kb/redirect-image-attachment-urls/ Mais cela ne fonctionne pas pour moi.

2
UserSoUndSo

C'est possible si chaque image a une page propre et il y a un motif connu entre elles.

Supposons qu'il existe une image appelée: car.jpg et qu'elle appartient à la page car.html. Dans ce cas, vous pouvez utiliser le fichier .htaccess pour effectuer la conversion à l'aide de la détection de renvoi:

RewriteCond %{HTTP_REFERER} !^https://www.example.com/.*$  [NC]
RewriteRule ^(.*)\.jpg$ $1.html                            [R=301,L]

Cela signifie que quiconque pas chargeant l'image à partir d'une page de votre site (www.exemple.com) recevra une redirection vers la page correspondante du même nom. Vous pouvez également ajouter d'autres types d'images, telles que jpg et png, en modifiant l'expression régulière en ^(.*)\.(jpg|png)$ ou en redirigeant vers une URL plus complexe, telle que post.php?image=$1.

Maintenant, si vous avez des images avec des noms qui ne se rapportent à aucune page telle que car.html ayant une image appelée nissan_sentra.png, vous ne pourrez pas avoir un mappage facile et vous devrez créer un tableau de redirection. pour chaque cas, ce qui est non seulement plus compliqué mais aussi plutôt difficile à maintenir.

1
Itai