IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

[.htaccess] Direction A vers B et B vers C mais pas A vers C


Sujet :

Apache

  1. #1
    Invité
    Invité(e)
    Par défaut [.htaccess] Direction A vers B et B vers C mais pas A vers C
    Bonjour à tous.

    Je chercher à sécuriser vite fait le répertoire bin sur mon serveur web : je veux empêcher l'accès à son contenu via l'URL. Un Options -Indexes ne suffit qu'à empêcher de naviguer dans bin et ses sous-répertoires mais pas de télécharger les fichiers s'y trouvant si on a accès à leurs URLs.

    Donc, pour cette partie, je souhaite que si l'on accède à http://www.site.com/bin/* (l'astérisque signifie "toute chaîne de caractères"), on soit redirigé vers http://www.site.com/bin/index.php (qui est une page qui dit "Accès Interdit" et redirige ailleurs).

    Mais je veux conserver l'accès en mode filou pour les personnes autorisées : mettons, via http://www.site.com/foo/archive.zip on est redirigé vers http://www.site.com/bin/archive.zip. (foo étant en réalité un vilain hash impossible à mémoriser)

    Voilà ce que j'ai écrit dans le .htaccess du répertoire bin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule ^bin/(.*)$ bin/index.php [L]
    RewriteRule ^foo/(.*)$ bin/$1 [L]
    Oui mais voilà, comme vous devez vous en douter : foo/* est réécrit en bin/*, qui lui-même est réécrit en bin/index.php. Or je ne veux tout simplement pas de cette deuxième réécriture dans le cas où l'URL de départ était bien foo/*.

    Comment puis-je m'y prendre ?

    Merci.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Il faut que tu ajoutes une information (en tant que variable d'URL) pour dire d'où vient la réécriture et rediriger selon les cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteCond %{QUERY_STRING} !parametre_pipo=
    RewriteRule ^bin/(.*)$ bin/index.php [L]
     
    RewriteRule ^foo/(.*)$ bin/$1?parametre_pipo=true [QSA,L]

    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

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup _Mac_, ta solution fonctionne, à un détail près : il faut que j'insère un anti-slash avant le point d'interrogation pour introduire la variable d'URL.

    Autrement dit, voici le code qui chez moi fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteCond %{QUERY_STRING} !allow=
    RewriteRule ^bin/(.*)$ bin/index.php [L]
     
    RewriteRule ^foo/(.*)$ bin/$1\?allow=true [QSA,L]
    Edit : finalement, foo ne sert plus à grand chose. Ce qui est nécessaire et suffisant, c'est que les personnes autorisées connaissent le nom de la variable d'URL.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. A ceux qui n'ont pas migré vers VB.NET
    Par bidou dans le forum VB 6 et antérieur
    Réponses: 153
    Dernier message: 12/12/2013, 13h33
  2. Pagination : ne pas pointer vers des pages inexistantes
    Par Devilju69 dans le forum Langage
    Réponses: 4
    Dernier message: 29/09/2008, 16h54
  3. je trouve pas "envoyer vers"
    Par silence_r dans le forum Windows XP
    Réponses: 13
    Dernier message: 12/09/2008, 16h10
  4. Création tables liées Access mais pas vers Access
    Par Lockss dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 24/06/2008, 15h58
  5. login du htaccess direct dans une table mysql ?
    Par boubourse92 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 03/08/2007, 08h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo