Wallpaper trucje
Ik meld mij zojuist aan dus even heel korte (nette) introductie. Mijn naam is Christian en ik programmeer vooral in PHP met natuurlijk de onvermijdelijke CSS, HTML en Javascript daarnaast. Ik ben een handige autodidact, maar loop zo nu en dan even tegen de spreekwoordelijke 'lamp'. Zo ook nu.
Ik ben opzoek naar het juiste antwoord voor het 'wallpaper trucje'. Daarmee bedoel ik het volgende. Men zoekt via Google Afbeeldingen en als de gebruiker daar klikt op 'afbeelding weergeven' dan komen ze niet op de afbeelding uit, maar op een mooi stukje van de website waar deze afbeelding dan wel/niet op staat. Wallpaper sites gebruiken dit trucje vaak omdat ze natuurlijk willen dat je wel even hun reclames ziet. Mijn klant wil dit trucje gebruiken om meer waardevolle bezoekers op zijn sites te krijgen.
Ik heb iets erg leuks gevonden met htaccess:
RewriteRule ^naamvandeimage.jpg/?$ /naamvandeimage [L,R=301]
Dit werkt geweldig! Maar zelfs zo goed dat alle afbeeldingen van mijn site verdwijnen, want die maken natuurlijk ook gebruik van de bestandsnaam. #fail
Nu viel mij op dat de wallpaper sites veelal bij deze situatie de '.jpg' gewoon in de adresbalk hebben staan. Zoals: http://www.planwallpaper.com/#static/images/303836.jpg
Toch wordt er een hele website getoond.
Kent iemand de methode om dát voor elkaar te krijgen? Dat ik kan bepalen dat een .jpg link een bepaalde pagina op mijn website gaat tonen, zonder daarmee gelijk al de images op mijn site de nek om te draaien? Ik heb echt even geen idee :-/
Thx!
Chris
Gewijzigd op 24/10/2017 07:29:09 door Christian Verhoeve
Code (php)
1
2
2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^images/(.*)\.(gif|jpg|jpeg|png|webp)$ /images/index.php?image=$1 [NC,L]
RewriteRule ^images/(.*)\.(gif|jpg|jpeg|png|webp)$ /images/index.php?image=$1 [NC,L]
Vervolgens laat je /images/index.php op basis van de bestandsnaam bepalen wat er precies wordt getoond: de opgevraagde afbeelding of een complete webpagina.
Magische woorden in Google: image hotlink protection htaccess
Gaat de vraag van de topicstarter nu over (het voorkomen van) hotlinking of hashtag navigatie?
@Ward: Goeie code en resultaat is inderdaad een pagina die vertoond wordt op basis van een .jpg link in de adresbalk. So far so good :) Maar overal op de website worden nu nogsteeds de betreffende images vervangen voor een test omdat de htaccess daar ook dezelfde code site van de jpg. Doe ik iets verkeerd?
@Thomas: Hotlinking lijkt mij het meer logische woord. Ik wil een website tonen, van mijn keuze, bij bezoek aan een .jpg link. Dus als mensen vanuit google afbeeldingen klikken op 'Afbeelding weergeven' dat ze niet slechts alleen de afbeelding zien, maar gewoon de webpagina te zien krijgen waar deze afbeelding op staat.
@Adoptive Solution: Scherp... heel scherp haha.
Code (php)
1
2
3
2
3
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://www.yourdomain.com [NC,R,L]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://www.yourdomain.com [NC,R,L]
Ik laat hier doelbewust lege referers ook toe, omdat er genoeg firewalls e.d. zijn die de referer header niet doorgeven.
RewriteCond %{REQUEST_FILENAME} !-f
Vergeten toe te voegen.
En naar die van Ben ga ik ook kijken :)