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