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 :

Rewrite rule spécifique ne fonctionne pas sur certaines config


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Par défaut Rewrite rule spécifique ne fonctionne pas sur certaines config
    Bonjour,

    j'ai une règle de redirection qui fonctionne parfaitement sur mon serveur (LINUX / apache 2) et ne fonctionne plus sur le serveur de mon client (LINUX / apache 2).
    mod_rewrite est bien activé sur le serveur de mon client car les autres règles fonctionnent.

    Voila ce qui ne fonctionne pas sur le serveur de mon client:
    Il s'agit des règles spécifiques à l'interface d'admin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # Specific rewrite rule for administration
    RewriteRule ^admin\/$  admin.php?lang=fr&controller=index&%{QUERY_STRING}  [L]
    RewriteRule ^admin\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)$  admin.php?lang=$1&controller=$2&%{QUERY_STRING}  [L]
    RewriteRule ^admin\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/$  admin.php?lang=$1&controller=$2&%{QUERY_STRING}  [L]
    RewriteRule ^admin\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)$  admin.php?lang=$1&controller=$2&action=$3&%{QUERY_STRING}  [L]
    RewriteRule ^admin\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/$  admin.php?lang=$1&controller=$2&action=$3&%{QUERY_STRING}  [L]

    Par contre ces règles marchent parfaitement sur le serveur de mon client:
    Il s'agit des règles spécifiques pour le front-office.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    # Specific rewrite rule for application
    RewriteRule ^([a-zA-Z0-9-]*)$  index.php?lang=$1&controller=index&%{QUERY_STRING}  [L]
    RewriteRule ^([a-zA-Z0-9-]*)\/$  index.php?lang=$1&controller=index&%{QUERY_STRING}  [L]
    RewriteRule ^([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)$  index.php?lang=$1&controller=$2&id=$3&%{QUERY_STRING}  [L]
    RewriteRule ^([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/$  index.php?lang=$1&controller=$2&id=$3&%{QUERY_STRING}  [L]
    RewriteRule ^([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)$  index.php?lang=$1&controller=$2&id=$3&action=$4&%{QUERY_STRING}  [L]
    RewriteRule ^([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)\/$  index.php?lang=$1&controller=$2&id=$3&action=$4&%{QUERY_STRING}  [L]

    Je précise que les régles pour l'admin sont placées avant celles pour le front-office dans le fichier .htaccess.
    Donc bizaremment je n'ai aucun souci sur mon serveur mais sur le serveur de mon client les règles pour l'admin renvoit un résultat surprenant:
    $_SERVER['PHP_SELF'] = "admin.php/lang/controller/action/"
    alors que sur mon serveur:
    $_SERVER['PHP_SELF'] = "admin.php"

    Donc cela provoque une erreur au niveau du routeur de l'application côté back-office.
    J'ai l'impression que c'est la partie statique "admin" de l'url qui pose problème car les règles du front-end fonctionnent.
    Si quelqu'un a une idée de ce qui pourrait être l'origine du problème ou le début d'une solution je suis preneur.


    Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 14
    Par défaut
    Donc j'ai comris d'ou venait le problème.
    Pour ceux que cela pourrait aider à débugger ce genre de problème:

    Apparemment certains hébergeurs configurent apache pour effectuer des redirections automatiques sur les des url du type:
    www.(domain.com)/filename/
    vers
    www.(domain.com)/filename.php

    et si vous avez une url du type:
    http://www.(domain.com)/filename/lan...roller/action/

    apache transforme l'url comme suit:
    http://www.(domain.com)/filename.php...roller/action/

    Donc malheureusement si vous avez une régle de réécriture qui contient dans l'url le nom d'un fichier existant à la racine du site web cela cré un conflit.
    Exemple:
    RewriteRule ^admin\/([a-zA-Z0-9-]*)\/([a-zA-Z0-9-]*)$ admin.php?lang=$1&controller=$2&%{QUERY_STRING} [L]

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

Discussions similaires

  1. rewrite rule & redirection ne fonctionne pas!
    Par redah75 dans le forum Apache
    Réponses: 1
    Dernier message: 07/04/2014, 20h03
  2. fsockopen ne fonctionne pas sur certains host
    Par toufika13 dans le forum Langage
    Réponses: 4
    Dernier message: 30/01/2014, 19h22
  3. Le php ne fonctionne pas sur certaine page ?
    Par dark vador 008 dans le forum Langage
    Réponses: 2
    Dernier message: 01/07/2009, 17h09
  4. Réponses: 1
    Dernier message: 22/06/2009, 09h16
  5. [ZF 1.7] [Zend_Lucene] $doc->addField ne fonctionne pas sur certains serveurs
    Par JeanVcrt dans le forum Autres composants
    Réponses: 1
    Dernier message: 13/02/2009, 12h00

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