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 :

Les URL rewriting me rendent dingue!


Sujet :

Apache

  1. #1
    Invité
    Invité(e)
    Par défaut Les URL rewriting me rendent dingue!
    Bonsoir,

    Depuis très longtemps j'essaie de mettre en oeuvre les URL rewriting d'Apache mais sans succès! Le module mod_rewrite est correctement chargé il n'y a pas de souci à ce niveau.

    Dans un premier temps, je voudrais faire un truc très très simple pour comprendre la logique de ce système mais même du simple je ne sais pas faire!

    J'espère arriver déjà à ce niveau : réécrire mes url .php en .html. Exemple : la page d'accueil de mon site est http://www.monsite.com/index.php MAIS je voudrais rendre inaccessible ce lien et pouvoir appeler la page par http://www.monsite.com/index.html. Je sais que c'est possible mais j'y suis pas arrivé!

    Voilà ce que j'ai écrit pour voir ce qui ne va pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine On
    RewriteRule ^index.html$ index.php
    En entrant l'adresse http://www.monsite.com/index.html j'ai une erreur 404 et si j'inverse index.html et index.php dans la directive RewriteRule j'ai un Bad request.

    En fin de compte j'espère un jour comprendre ces foutues réécritures qui me paraissent si utiles pour la sécurité.

    Merci!

    webrider

    EDIT: j'oubliais de dire que j'accède de manière tout-à-fait normale à http://www.mondomaine.com/index.php même avec la réécriture!

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    essaie de mettre ^/index.html$ au lieu de ^index.html$

  3. #3
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Et le point est un caractère spécial, il doit être précédé de \

    Ca donne donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^index\.html$ index.php

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bien vu à tous les deux, maintenant je commence à aimer ça!

    Seul petit hic : je peux toujours appeler index.php ce que je souhaiterais bien évidemment interdire. Je dois rajouter une règle pour cela? Par exemple renvoyer index.php vers une page inexistante?

    Ceci m'amène à une autre question.

    Est-il possible de renvoyer des liens vers des fichiers en-dehors du répertoire racine du serveur?

    Exemple :

    Racine du serveur /var/website
    Fichiers php dans /var/php

    Est-il possible de ne mettre aucun fichier dans website et réécrire les adresses pour qu'elles pointent vers /var/php? Ce serait sympa question sécurité : personne ne pourrait avoir un accès direct aux fichiers de /var/php.

    Merci!

  5. #5
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Peut-être via les alias d'Apache ?

    Sinon tu places tes fichiers dans un dossiers et tu désactives l'indexation d'Apache pour pas que ce soit visible

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci Freed0!

    J'ai un peu bossé sur ce sujet ce matin et j'ai trouvé une solution pour empêcher l'accès direct à n'importe quel fichier php sans toutefois empêcher les réécritures vers ceux-ci.

    J'y suis arrive grâce à RewriteCond comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #Erreur 404 si demande d'un fichier php
    	RewriteCond %{REQUEST_URI} ^/.*\.php$
    	RewriteRule ^/.*\.php$ /foo
    Et à la suite de ça je mets mes RewriteRules sur les fichiers php et ça marche!

    En tous cas merci de m'avoir dépanné pour ce "/" qui m'a sacrément embêté!

    @++

    webrider

    Si vous voyez une faille de sécurité dans ce que je fais n'hésitez pas à me le signaler!

  7. #7
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Bien vu le coup de la 2ème réécriture ... j'y avais pas pensé

    Bonne continuation

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/10/2007, 10h17
  2. [Url Rewriting] les tirets
    Par masseur dans le forum Apache
    Réponses: 1
    Dernier message: 17/08/2007, 14h10
  3. Réponses: 3
    Dernier message: 31/07/2007, 16h40
  4. Réponses: 1
    Dernier message: 07/06/2007, 17h23
  5. Les dates me rendent dingue...
    Par David.V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/10/2004, 13h44

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