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] httpd.conf vs htaccess


Sujet :

Apache

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Points : 76
    Points
    76
    Par défaut [URL Rewriting] httpd.conf vs htaccess
    Bonjour,
    n'ayant pas réussit à trouver la reponse, voici ma question :

    Peut on faire de l'urlrewriting sans utiliser de .htaccess ?

    si je me fie au site apache :
    This module operates on the full URLs (including the path-info part) both in per-server context (httpd.conf) and per-directory context (.htaccess) and can generate query-string parts on result.
    Mon anglais n'est pas parfait, mais il me semble comprendre qu'il y a deux facons d'utiliser le mod_rewrite. L'utilisation du htaccess n'est pas forcé.


    Je m'explique, mon site est découpé en morceau, la magie des alias et virtualhost fait le reste. Donc pour eviter d'ecrire 50 htaccess, j'aimerais pouvoir mettre mes régles d'ecriture dans mon httpd.conf.

    mon bout de code test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <IfModule rewrite_module
     
    RewriteEngine On
    RewriteRule ^info\.html$ /info.php [L]
     
    </IfModule>
    J'ai ajouté ce code dans mon httpd.conf, et dans mon virtualhost, j'ai mis
    RewriteEngine On
    RewriteOptions Inherit

    Pourtant, rien ne se passe. !!

    le meme code dans un .htaccess fonctionne

    Quelqu'un peut il m'éclairer ??

    Mon environnement:
    Serveur: dédié
    OS: FreeBSD
    Apache: 2.2.6
    Php: 5.2.5

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Le chemin figurant dans la requête et qui est suivi par le serveur est automatiquement supprimé par le serveur avant appel/transmission à vos règles (RewriteRule) situées dans le fichier .htaccess.

    Donc par rapport à ce que vous donnez il manque le / au tout début de votre expression régulière (surtout qu'elle est ancrée à ce niveau) pour fonctionner dans le fichier de configuration d'Apache.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Points : 76
    Points
    76
    Par défaut
    J'ai suivi votre conseil julp

    j'ai donc modifié comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^/info\.html$ /info.php [L]
    cela fonctionne.
    Donc si je comprends bien, les règles prennent comme chemin relatif le fichier qui les contiens.

    mon fichier .htaccess etait a la racine, donc le chemin etait /
    c'est pour cela que ca fonctionnait.


    Merci pour votre aide précieuse et rapide.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par sevian
    Donc si je comprends bien, les règles prennent comme chemin relatif le fichier qui les contiens.
    Oui c'est l'idée :
    • Le chemin sera absolu pour une règle RewriteRule placée dans un fichier de configuration d'Apache
    • Le chemin sera relatif pour une règle RewriteRule placée dans un fichier .htaccess


    Exemple : je dispose d'un forum placé dans le sous-répertoire forum par rapport à ma racine web et je souhaite réécrire .*-t[0-9]+.html sur le script (réel) showthread.php?t=[0-9]+. Suivant l'emplacement de cette règle, le chemin à utiliser sera différent :

    (en espérant ne pas m'être planté )

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

Discussions similaires

  1. URL Rewriting dans le fichier .htaccess
    Par moukit233 dans le forum Apache
    Réponses: 2
    Dernier message: 21/10/2013, 11h11
  2. [URL Rewriting] Question sur le .htaccess (Redirect)
    Par vdumont dans le forum Apache
    Réponses: 3
    Dernier message: 26/12/2007, 12h48
  3. Problème cumul rewriting httpd.conf et .htaccess
    Par klerthis dans le forum Apache
    Réponses: 1
    Dernier message: 19/01/2007, 09h54
  4. .htaccess - url rewriting, besoin de conseils
    Par giminik dans le forum Apache
    Réponses: 2
    Dernier message: 25/04/2005, 20h18
  5. Url Rewriting / htaccess
    Par bisi dans le forum Apache
    Réponses: 4
    Dernier message: 25/07/2004, 22h12

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