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:
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:
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.