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] Ma réécriture ne fonctionne pas


Sujet :

Apache

  1. #1
    Membre régulier Avatar de SebastienM
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 310
    Points : 86
    Points
    86
    Par défaut [URL Rewriting] Ma réécriture ne fonctionne pas
    Bonjour,

    J'ai mis en place une fonction d'URL rewriting qui fonctionne parfaitement sur Easy PHP ; mais lorsque je le déporte sur un serveur Red Hat (apache 1.3.27) cela ne fonctionne plus :

    Mon fichier .htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Options +FollowSymlinks
    RewriteEngine On
     
    RewriteRule ^([0-9a-z-]*).([0-9]*)\.htm$ /mon siteweb/actualites/actu.php?numactu=$2 [L]
    Et l'erreur est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Forbidden
    You don't have permission to access /dev/actualites/rss2.php on this server.
    Dans le log :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Option FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden : /var/monsiteweb/actualites/rss2.php
    Je précise que j'aimerai trouver une solution qui éviterai (si possible) de toucher au fichier httpd.conf (contrainte client).

    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
    Je dirais que c'est parce que dans le fichier httpd.conf de ta RedHat, il y a un AllowOverride None qui empêche ton FollowSymLinks d'être pris en compte. Mais je ne suis pas sûr, en fait. L'idée c'est peut-être de comparer plus ou moins ligne à lignes les 2 fichiers httpd.conf pour identifier les différences notables de configuration.

  3. #3
    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 777
    Points
    17 777
    Par défaut
    Oui il faut nécessairement toucher au fichier de configuration d'Apache :
    • Soit pour permettre la redéfinition des paramètres localement :
      Dans le fichier de configuration d'Apache, sur le répertoire voulu et/ou la racine du site :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      AllowOverride Options FileInfo # le minimum pour la réécriture
      Pour pouvoir ensuite utiliser dans le fichier .htaccess :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Options +FollowSymLinks
    • Soit spécifier cette option de manière "globale" (sur la racine du site ou plus spécifiquement sur le répertoire - Directory - voulu) pour ne pas avoir à l'indiquer dans le fichier .htaccess :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Options ... (+)FollowSymLinks
      (donc Options +FollowSymLinks n'a plus rien à faire dans le fichier .htaccess)

    A vous de voir ce qui vous convient le mieux.

  4. #4
    Membre régulier Avatar de SebastienM
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 310
    Points : 86
    Points
    86
    Par défaut
    Tout d'abord, merci pour vos réponses.

    Le problème me dépasse complètement.

    Le fichier de configuration d'Apache n'était pas le bon ; dans le bon il n 'y a pas le module mod_rewrite.so d'activé.

    J'ai essayé de l'activer et ça plante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Starting httpd: Syntax error on line 22 of /usr/local/apache/conf/httpd.conf:
    Cannot load /usr/local/apache/libexec/mod_rewrite.so into server: /usr/local/apache/libexec/mod_rewrite.so: undefined symbol: apr_pool_cleanup_null                        [éCHOUé]

  5. #5
    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 777
    Points
    17 777
    Par défaut
    Quel est le passage qui correspond à l'erreur de syntaxe ?

    Où avez-vous récupéré le module (puisqu'il présente visiblement une "incompatibilité") ?

  6. #6
    Membre régulier Avatar de SebastienM
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 310
    Points : 86
    Points
    86
    Par défaut
    Alors (de tête), j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LoadModule mod_rewrite /usr/local/httpd/modules/mod_rewrite.so
    c'est ça qui provoque cette erreur ; le module est déjà présent sur le serveur.

  7. #7
    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
    Généralement, ce genre d'erreur vient d'une variable d'environnement LD_LIBRARY_PATH mal définie : elle ne contient pas les répertoires dans lesquels trouver les .so requis pour exécuter le programme (Apache + tous les modules). Après une très très rapide recherche sur le Web, le symbole apr_pool_cleanup_null a l'air d'être défini dans la librairie libgdbm.so (j'ai des doutes que ce soit le bon fichier...). Rajoute donc dans LD_LIBRARY_PATH le répertoire dans lequel se trouve ce fichier libgdbm.so.

Discussions similaires

  1. [URL rewriting] la redirection ne fonctionne pas
    Par jobo13 dans le forum Apache
    Réponses: 2
    Dernier message: 08/03/2009, 18h51
  2. Module Url rewritting activé mais ne fonctionne pas
    Par Gregory.M dans le forum Apache
    Réponses: 4
    Dernier message: 02/02/2009, 10h18
  3. Réponses: 3
    Dernier message: 29/01/2009, 10h45
  4. Réponses: 2
    Dernier message: 19/04/2008, 16h52
  5. Réponses: 12
    Dernier message: 26/03/2008, 20h00

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