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 :

[URL rewriting] Interdire l'accès aux .php


Sujet :

Apache

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut [URL rewriting] Interdire l'accès aux .php
    salut a tous!
    difficile de resumer ca dans le titre!

    je fais un site en php avec de la réécriture d'url.
    par exemple la page conf_ch1_6.html redirige vers conf_redir.php?p=1_6

    je fais ca tres bien dans le .htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    RewriteEngine on 
     
    RewriteRule ^conf\.html$  conf.php  [L]
    RewriteRule ^conf_ch(.+)\.html$  conf_redir.php?p=$1  [L]
    jusque la aucun probleme

    sauf que en faisant directement conf_redir.php?p=1_6 dans le navigateur, on accède aussi à la page ... normal a priori, mais je voudrais éviter, et tant que j'y suis interdire l'accès direct à tout script php,
    j'ai donc rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule .php  / [R=404,L,NS]
    a la fin du .htaccess

    et la catastrophe, erreur 404
    quand j'essaye conf.html il ne me trouve pas conf.php
    et quand j'essaye conf_ch1_6.html il ne me trouve pas conf_redir.php

    j'ai oublié quelque chose??

    merci d'avance!

  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
    Citation Envoyé par cadbury Voir le message
    j'ai oublié quelque chose??
    Oui : il faut ajouter un paramètre aux URL réécrites avec la première règle qui sert uniquement à différencier les accès directs aux fichiers .php et les accès à ces mêmes fichiers suite à une réécriture. Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    RewriteEngine on 
    
    RewriteRule ^conf\.html$  conf.php  [L]
    RewriteRule ^conf_ch(.+)\.html$  conf_redir.php?p=$1&internal=1  [L]
    
    RewriteCond %{QUERY_STRING} !internal=1
    RewriteRule .php  / [R=404,L,NS]

    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    oh yes!

    mais c'est pas à ca que le [NS] sert?

  4. #4
    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
    Visiblement non. La définition de NS n'est pas très claire : c'est effectivement pour bloquer les sous-requêtes internes. La doc donne l'exemple de mod_include (les SSI) pour dire ce qu'est une sous-requête interne, mais le fait qu'une URL soit réécrite par mod_rewrite n'est pas considéré comme une sous-requête.

    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

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    ok
    merci beaucoup!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/02/2012, 15h48
  2. [URL rewriting] Interdire tous les .php en accès direct
    Par Napster2k3 dans le forum Apache
    Réponses: 4
    Dernier message: 28/03/2011, 21h12
  3. Réponses: 3
    Dernier message: 17/06/2010, 19h40
  4. Réponses: 1
    Dernier message: 05/09/2005, 19h18
  5. Réponses: 38
    Dernier message: 16/02/2005, 02h03

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