HTTP_REFERER en php

WRInaute occasionnel
Bosoir
j'ai besoin de protégé une page de mon site contre tout acces externe!
sur mon ancien hebergeur tout marché tres bien avec .htaccess ! mais la avec le nouveau serveur ca marche pas et je sais pas pourquoi

cependent je cherche de faire la meme chose en php
y'a t il une solution?
Merci de me repondre

ps: voila mon code .htaccess en cas ou

Code:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domaine.com(/)?.*$ [NC]
ReWriteRule ma_page\.php.*$ http://www.domaine.com/ [R,NC]
 
WRInaute occasionnel
serieu!
on parle la de la page de mon lecteur et ca m'arange pas qu'on puissent mettre un lien direct vers le lecteur!
alors si quelqu'un a une idée je suis preneur

++
 
WRInaute accro
Ben si tu détaillais plus clairement, tu aurais éviter ma réponse... qu'est ce que j'en sais que c'est ton "lecteur" ? tu en parles pas

Ceci dit une page neutre avec un mot de passe qui renvoit vers une page dont le nom change à chaque connexion... ben je vois pas ce qu'il y a d'horrible
 
WRInaute occasionnel
Non merci lol!
j'ai besoin seulement d'interdire un acces externe a cette page ! ce qui veu dire que le visiteur doit cliquer sur un lien de mon site pour voir le lecteur!
normalement tout est dans le .htaccess seulemet ca marche plus!
Merci comeme l'ami

Bonne nuit
 
WRInaute occasionnel
tu peux utiliser un htpasswd pour restreindre l'acces a cette page par mot de passe. ca me parait etre le plus simple. autrement, il faut monter un petit script de login en php.

A chercher sur google pour htpasswd

Bonne chance,

Thierry
 
WRInaute occasionnel
Merci pour ta reponse Kaliiii
mais c'est pas ce que je cherche
je cherche seulement a obligé mes visiteurs a passé pour une page de mon site pour pouvoir afiché le lecteur
 
WRInaute accro
Enleve le [R] qui force la redirection et arrete l'intruction a la place avec 1 [L]

Code:
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domaine.com(/)?.*$ [NC] 
ReWriteRule ma_page\.php.*$ http://www.domaine.com/ [L]
 
WRInaute occasionnel
Merci KOogar mais ca n'a rien changé
la regle ne marche toujours pas!
sachant que je suis sur mon propre serveur ! le mode rewrite est activé! y'a pas autre chose a activé pour que ca fonctionne?

Merci comeme
 
WRInaute accro
h4ni a dit:
Merci KOogar mais ca n'a rien changé
la regle ne marche toujours pas!
sachant que je suis sur mon propre serveur ! le mode rewrite est activé! y'a pas autre chose a activé pour que ca fonctionne?

Merci comeme

Donc tu as bien decommenter dans ton httpd.conf la ligne
LoadModule rewrite_module modules/mod_rewrite.so
et tu as redemarrer le serveur ?

Ensuite je ne l'ai pas mis mais il faut demarrer le module dans le .htaccess
avec
RewriteEngine On

Ce qui donne:
Code:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domaine.com(/)?.*$ [NC] 
ReWriteRule ma_page\.php.*$ http://www.domaine.com/ [L]

Pour tester si ton rewrite est actif
Code:
RewriteEngine On
RewriteRule ^index\.html$  /index.php [L]

test en mettant index.html dans ton navigateur et la page index.php devrait apparaitre.
 
WRInaute occasionnel
Voila mon .htaccess

Code:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^domaine.com$
RewriteRule ^(.*) http://www.domaine.com/$1 [QSA,L,R=301]



RewriteRule ^Album-(.*).php$ album.php?album=$1 [L]
RewriteRule ^musique-(.*).php$ genre.php?genre=$1 [L]
RewriteRule ^Artiste-(.*).php$ artist.php?artist=$1 [L]

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domaine.com(/)?.*$ [NC]
ReWriteRule lecteur\.php.*$ http://www.domaine.com/ [L]

ErrorDocument  404  http://www.domaine.com
ErrorDocument  403  http://www.domaine.com

RedirectPermanent /forum http://www.domaine.net/forum

tout marche tres bien apart le HTTP_REFERER

dans mon httpd.conf
j'ai
Code:
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
 
WRInaute accro
Tous les serveurs ne renvoie pas le referer. Contact ton hebergeur car ce qui marche chez l'un doit marcher chez l'autre.

As tu vraiment besoin d'un RewriteBase ?
 
WRInaute occasionnel
KOogar a dit:
Tous les serveurs ne renvoie pas le referer. Contact ton hebergeur car ce qui marche chez l'un doit marcher chez l'autre.

As tu vraiment besoin d'un RewriteBase ?
j'ai pas d'hebergeur ! enfin je suis avec un dedié ovh
 
WRInaute accro
h4ni a dit:
KOogar a dit:
Tous les serveurs ne renvoie pas le referer. Contact ton hebergeur car ce qui marche chez l'un doit marcher chez l'autre.

As tu vraiment besoin d'un RewriteBase ?
j'ai pas d'hebergeur ! enfin je suis avec un dedié ovh

OVH reste ton hebergeur et leur service technique à ton service :D
 
WRInaute occasionnel
KOogar a dit:
h4ni a dit:
KOogar a dit:
Tous les serveurs ne renvoie pas le referer. Contact ton hebergeur car ce qui marche chez l'un doit marcher chez l'autre.

As tu vraiment besoin d'un RewriteBase ?
j'ai pas d'hebergeur ! enfin je suis avec un dedié ovh

OVH reste ton hebergeur et leur service technique à ton service :D
il te live un serveur nu ! sur qui j'ai installé debian et vhcs!
je ne sais pas comment ils peuvent m'assisté :(
mais je vais essayé comeme

Merci
 
WRInaute occasionnel
Re
quand j'enleve RewriteCond %{HTTP_REFERER} !^$ du code
Code:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domaine.com(/)?.*$ [NC]
ReWriteRule ma_page\.php.*$ http://www.domaine.com/ [R,NC][/

la protection hotlink marche tres bien sur firefox mais pas sur IE (il m'interdit l'acces a la page meme depuis mon site)

aucune idée?
 
WRInaute accro
As tu reussi a contacter le service technique ? Ils sont la pour t'assiter.

Normalement ce qui marche sur 1 navigateur marche sur les autres. Tu n'aurais pas un probleme de firewall qui bloque le referer ?

remplace
[R,NC]
par
[QSA,L]

cela sera toujours mieux de ne pas forcer la redirection.
 
WRInaute occasionnel
reponse de la part d'ovh

pour la protection hotlink c etrange que ca amrche sous firefox et non sur IE
j'ai essayé [QSA,L] mais c'est pareil!

je change souvent le nom de mon fichier lecteur.php question de ne pas avoir des hotlink en atendent de trouvé une solution

Merci beaucoup

Sallam
 
WRInaute impliqué
Salut !

Je pense que ça pourrait être faire en php, avec une condition qui verifie le contenu de la variable HTTP_REFERER .

Si elle contient ton domaine ça passe, sinon ça casse !


Qu'en pensez vous ?
 
WRInaute impliqué
Code:
if($variable = 'tondomaine')
{
afficher le lecteur !
}
else
{
redirection
}

J'ai cours dans 10 min donc c'est fait trés vite !

Sinon je te donnerai le code complet ce soir.

Adam
 
WRInaute accro
en php ca donne

Code:
<?php

$uri = $_SERVER["HTTP_REFERER"];
 // met la page concerné a la place de ma_page:
$val = strstr ($uri,'ma_page');
if($val != FALSE) {
header("Status: 301 Moved Permanently");
// met la page ou le site de redirection a la place de http://www.tonsite/
header("Location: http://www.tonsite/");
}

?>
 
WRInaute occasionnel
Bonjour
je vien d'essayé le code php mais ca ne marche pas
biensur je l'est mis entre les balises head , et j'ai changé ma_page avec lecteur.php ! mais y'a aucune redirection quand je tape directement le lien
 
WRInaute accro
As-tu regarder si tu receptionnes correctement le referer ?

Code:
$ref = $_SERVER["HTTP_REFERER"]; 
echo $ref;
 
WRInaute accro
Ca devrait mieux marcher avec l'uri. apel aussi ton script d'un autre site pour tester les 2 cas de figures/

Code:
<?php 

$referer = $_SERVER["HTTP_REFERER"];
// le domaine ou il y a le script
$val1 = strstr ($referer,'http://www.mondomaine.com');
if($val1 == FALSE) {
$uri = $_SERVER["REQUEST_URI"];
// met la page concerné a la place de ma_page:
$val2 = strstr ($uri,'ma_page');
if($val2 != FALSE) {
// met la page ou le site de redirection a la place de http://www.tonsite/
header("Location: http://www.tonsite/"); 
} 
}

?>
 
WRInaute occasionnel
marche pas aussi
enfin j'ai plus acces a la page meme depuis mon site
tout renvois a la page de redirection :(
 
WRInaute accro
Je ne suis malheuresement pas derriere ton ordi, et si tu remplis correctement les parametres, cela devrait trés bien marcher. Apprend à faire des "echo $mavariable" dans tes codes sources pour voir si tu recuperes correctement les valeurs demandées. Bon courage !!
 
WRInaute occasionnel
KOogar a dit:
Je ne suis malheuresement pas derriere ton ordi, et si tu remplis correctement les parametres, cela devrait trés bien marcher. Apprend à faire des "echo $mavariable" dans tes codes sources pour voir si tu recuperes correctement les valeurs demandées. Bon courage !!

Merci KOogar
j'ai tres bien recopier le code :(
si non !je me demandé si je pouvai te creer un sous domaine question de faire un test sur mon serveur ! si t'es ok tu me repond ici et je t'envois les code d'acces ftp par MP


Sallam
 
WRInaute occasionnel
Bonjour
je vien d'essayé ca:
Code:
SetEnvIfNoCase Referer "^http://www.domaine.com/" locally_linked=1
SetEnvIfNoCase Referer "^http://www.domaine.com$" locally_linked=1
SetEnvIfNoCase Referer "^$" locally_linked=1
<FilesMatch "ma_page\.php.*$">
Order Allow,Deny
Allow from env=locally_linked
</FilesMatch>
ca ne permet pas au autres d'afficher cette page dans une iframe mais l'acces direct a cette page n'est pas protegé!

y'a pas un moyen d'interdire l'acces direct a cette page ?

Merci .
 
Discussions similaires
Haut