Htaccess : Interdire tout accès via l'interface

Nouveau WRInaute
Bonjour,

je viens de créer une enquête LimeSurvey en local, sous EasyPHP.
l'URL est : C:\Program Files\EasyPHP5.3.0\www\limesurvey, dans le navigateur ça donne http://127.0.0.1/limesurvey/

Avant de mettre en ligne cette enquête, je souhaite lui appliquer une restcriction drastique : il ne faut pas qu'il soit possible d'y accéder manuellement, via l'interface web. Mon idée est d'exiger un referer fantaisiste.

Aussi, j'ai tenté de configurer le fichier C:\Program Files\EasyPHP5.3.0\www\limesurvey\.htaccess de la sorte :

## MOD_REWRITE for LimeSurvey ##
<IfModule mod_rewrite.c>
RewriteEngine On

## DONT TOUCH ANYTHING ##
# Only with survey code
# http://server.fr/123456
RewriteRule ^([0-9]+)/*$ index.php?sid=$1 [L,QSA]

# Survey code + Lang : http://server.fr/123456/lang-fr
RewriteRule ^([0-9]+)/lang-([^/]*)/*$ index.php?sid=$1&lang=$2 [L,QSA]

# Survey code + Lang + Token : http://server.fr/123456/lang-fr/tk-sdlfkjozeiru
RewriteRule ^([0-9]+)/lang-([^/]*)/tk-([^/]*)/*$ index.php?sid=$1&lang=$2&token=$3 [L,QSA]

# Survey code + Token : http://server.fr/123456/tk-sdlfkjozeiru
RewriteRule ^([0-9]+)/tk-([^/]*)/*$ index.php?sid=$1&token=$2 [L,QSA]

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^.www\.refererfantaisiste\.com*$

RewriteRule .*$ http://www.ma_page_de_redirection.com [L,R]

RewriteCond %{HTTP_USER_AGENT} MSIE
RewriteRule .* http://www.ma_page_de_redirection.com [L][/b]

</IfModule>

les deux derniers blocs en gras correspondent à un premier essai infructueux sur le referer, puis un deuxième en fonction du navigateur (IE serait rejeté si j'ai bien compris la combine)

Si je suis ici à vous poser la question, c'est que ça ne marche pas (du moins en local), l'accès à l'enquête se fait sans aucun problème et je ne comprends pas pourquoi :?:

Est-ce que vous pourriez m'aider à comprendre où ça coince, svp ?

Merci :wink:
 
Nouveau WRInaute
c'est bon en fait il suffisait de faire

Code:
RewriteCond %{HTTP_REFERER} !^http:\/\/www\.site\.com [NC]
RewriteRule ^.*$ www.pagederedirection.com [L,R]

par contre je me pose une question et j'ai trouvé aucune réponse : dans un fichier .htaccess avec la restriction ci-dessus, si le visiteur tente d'aller sur la page http://www.site.com/index.php?sid=546546, comment éviter que la redirection se fasse sur http://www.pagederedirection.com/?sid=546546 au lieu de http://www.pagederedirection.com tout court ?

Merci
 
WRInaute accro
sry pour ma remarque plus haut, javais oublier qu'avec 2 machines on peut tester les referers, de mon coté je n'utilises jamais le referer, trop de serveur ne le retourne pas

pour ton probleme, il suffit de capturer le resultat (.*) sans rien retourner, $1 est vide
Code:
RewriteRule ^(.*)$ www.pagederedirection.com/ [L,R=301]
 
Nouveau WRInaute
je viens de tester comme ceci

Code:
RewriteCond %{HTTP_REFERER} !^http:\/\/www\.site\.com [NC]
		RewriteRule ^(.*)$ www.pagederedirection.com/ [L,R=301]

ça ne marche pas, il y a toujours ce SID qui vient parasiter l'URL de redirection :?:
 
WRInaute accro
ca ne devrait pas capturer en l'abscence de motif..;

Code:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http:\/\/www\.site\.com [NC]
RewriteRule ^.*$ http://pagederedirection.com/ [R]

essaye de voir si ca ne fonctionne pas de donner une retroréférence inexistante

Code:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http:\/\/www\.site\.com [NC]
RewriteRule ^(.*)$ http://pagederedirection.com/$2 [R,QSA]
 
Nouveau WRInaute
D'accord, merci pour ton aide en tout cas. Ce n'est pas un problème bien grave de toutes façons.

Si tu le permets j'aurais une dernière question : est-il à ton avis possible qu'au moment de cette redirection, un son soit produit (de type mp3 ou autre)

Merci
 
WRInaute accro
non, htaccess est coté serveur.; si tu veux 1 son tu le fais après la redirection sur la page de réception.


pour revenir au .htaccess, j'ai retrouvé des redirections que j'avais fais et voici l'ecriture que j'avais employé pour rediriger 1 page sur 1 autre avec 1 test

Code:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http:\/\/www\.site\.com [NC]
RewriteRule  $ http://pagederedirection.com/ [L,R=301]
 
Discussions similaires
Haut