Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/06/2011, 20h52   #1
Invité de passage
 
Inscription : avril 2010
Messages : 29
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2010
Messages : 29
Points : 2
Points : 2
Par défaut Redirection quand l'url pointe sur un PDF

Bonjour.

J'ai constaté depuis quelques semaines que près de 80% des visiteurs de mon site ne restaient que moins de 30 s. La majorité d'entre eux ont atteint le document qu'ils cherchaient directement (l'url est alors http://www.monsite.com/documents/rep...p/document.pdf) et donc ne regardent même pas le site, ce que je trouve dommage.
Je voudrais donc savoir s'il y avait un moyen pour que, quand l'url est de la forme précédente, cad quand elle pointe sur un doc PDF, le visiteur soit redirigé automatiquement vers une page php dans laquelle je me débrouillerais pour que le document soit lancé automatiquement dans une fenêtre en jQuery au-dessus de mon site, afin que lorsque le visiteur ferme la fenêtre, il voit le site.

Le fichier .htaccess peut-il faire cela par hasard ?
Merci d'avance.
masiuxus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 22h03   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 283
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 283
Points : 8 569
Points : 8 569
Oui. Il faut que tu mettes en place une condition qui vérifier la valeur de l'en-tête Referer et qui redirige si cet en-tête indique une origine non vide autre que ton site.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 12h22   #3
Invité de passage
 
Inscription : avril 2010
Messages : 29
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2010
Messages : 29
Points : 2
Points : 2
Merci pour cette suggestion mais mes connaissances en APACHE sont très limitées, et je ne sais pas faire de conditions ...
J'imagine que ça tient en une ligne, mais j'ai recherché sur Internet la commande, sans succès ... Si quelqu'un pouvait m'éclairer (au moins avec la commande à utiliser), ça serait gentil. Merci d'avance.
masiuxus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 15h10   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 283
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 283
Points : 8 569
Points : 8 569
Ton truc, c'est de la protection contre le hot linking. Un petit coup de moteur du forum de recherche avec ce mot-clé ou %{HTTP_REFERER} et tu auras presque ce que tu veux. Par exemple, ça ramènera cette discussion. La différence avec ce que tu veux faire c'est que dans cette discussion on ne parle pas de redirection. Tout ce que tu as à faire c'est modifier la liste des extensions vérifiées et remplacer la RewriteRule par une RewriteRule qui fait une redirection (i.e. avec [R]).
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 19h36   #5
Invité de passage
 
Inscription : avril 2010
Messages : 29
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2010
Messages : 29
Points : 2
Points : 2
Ce n'est pas de la protection contre le hot linking.
Ce que je veux, c'est que si figure l'adresse "http://www.monsite.tld/rep/doc.pdf", le document en question ne s'affiche pas mais que la page "reload.php?document=doc.pdf" (par exemple) se charge.
Ce que tu me proposes ne fonctionne pas car quand je tape directement l'adresse du document, il s'ouvre sans problème avec le RewriteRule.

Pour info, j'ai mis dans mon .htaccess :

Code :
1
2
3
4
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?monsite.tld/.*$ [NC]
RewriteRule \.(pdf|PDF)$ reload.php[R]
(je ne sais même pas récupérer le nom du document ...)
masiuxus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 22h07   #6
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 283
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 283
Points : 8 569
Points : 8 569
C'est normal que ça ne fonctionne pas car quand tu tapes directement l'URL, le referrer est vide et donc la première condition n'est pas validée et donc tu n'as pas de redirection. Donc si ça ne te va pas, retire la première RewriteCond. Mais si tu fais ça, ton site ne fonctionnera pas pour les personnes pour lesquelles le navigateur ou le proxy retire l'en-tête Referer. C'est la seule raison d'être de cette première condition, libre à toi de la retirer.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2011, 19h17   #7
Invité de passage
 
Inscription : avril 2010
Messages : 29
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2010
Messages : 29
Points : 2
Points : 2
Merci pour ces précisions.
Maintenant, je cherche à récupérer l'URL afin de récupérer le nom du document appelé.
Quelle est la commande à utiliser ?
J'ai regardé du côté de RewriteCond %{QUERY_STRING}, mais j'avoue que je ne sais pas l'utiliser dans ce cas.
masiuxus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2011, 21h34   #8
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 283
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 283
Points : 8 569
Points : 8 569
Soit tu regardes le referrer dans ton code PHP ($_SERVER["HTTP_REFERER"]), soit tu passes l'URL du fichier PDF en paramètre de ta redirection :
Code :
RewriteRule \.(pdf|PDF)$ reload.php?document=$0 [R]
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2011, 23h16   #9
Invité de passage
 
Inscription : avril 2010
Messages : 29
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2010
Messages : 29
Points : 2
Points : 2
Mais bien sûr ! J'étais tellement obnubilé par apache que j'en ai oublié php.

En fait j'ai mis dans .htaccess :

Code :
1
2
3
RewriteCond %{HTTP_REFERER} !^http://(www\.)?monsite.tld/.*$ [NC]
RewriteRule \.(pdf|PDF)$ reload.php
(avec l'option [R], cela ne fonctionnait pas ...)

et dans reload.php, j'ai mis :

Code :
1
2
3
4
<?php
	echo "<script>location.href='http://www.monsite.ltd/index.php?reload=".$_SERVER['REQUEST_URI']."';</script>"; 
?>
Et cela fonctionne ... mais j'ai constaté que la redirection prenait un certain temps ... (quelques secondes, ce qui est très long). Je vais essayé demain pour voir si ça rame encore, mais je trouve cela étrange vu que les autres pages se chargent rapidement.

Merci encore !
masiuxus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h11.


 
 
 
 
Partenaires

Hébergement Web