ElMoustiko Posté 25 Janvier 2005 Posté 25 Janvier 2005 Salut les Hubbeurs, me r'vla avec un problème de règle de réécriture C'est assez étrange, j'ai pas la même chose en local ou en ligne Je vous donne le topo RewriteEngine onRewriteRule ^administration/([^<>]+)/$ /studi-o-normes/$1 [L] Donc, les urls du type "administration/QQCHOSE/" sont en fait des alias pour "studi-o-normes/QQCHOSE.php" En local, je met $1.php ça roule, c'est impec, mais en ligne, il faut que je mette $1 sans le .php pour que ça marche, déjà là c'est pas très logique. Enfin, ici ça marche même pas, j'y viens, ma remarque précédente c'est pour cette règle : RewriteRule ^([^<>]+)/$ /studi-o-normes/$1 [L] Qui fait un alias de "QQCHOSE/" pour "/studi-o-normes/QQCHOSE.php" Donc en ligne $1 et en local $1.php Je comprend pas trop déjà là Donc, pour en revenir au problème, la première règle que je donne ne fonctionne pas, c'est plutôt étrange, parcequ'elle fonctionne en local et semble bien écrite... J'ai aussi testé en mettant mon url à tester en dur RewriteRule ^administration/ajout_crea/$ /studi-o-normes/ajout_crea.php [L] Mais rien ne se passe... Je vous met le fichier htaccess complet Version en ligne RewriteEngine onRewriteRule ^administration/([^<>]+)/$ /studi-o-normes/$1 [L]RewriteRule ^creations/([0-9]+)_(.*)/$ /studi-o-normes/creations.php?id=$1 [L]RewriteRule ^accueil/$ /studi-o-normes/ [L]RewriteRule ^([^<>]+)/$ /studi-o-normes/$1 [L]ErrorDocument 404 /studi-o-normes/err404/ Version local RewriteEngine onRewriteRule ^administration/([^<>]+)/$ /site_perso/$1.php [L]RewriteRule ^creations/([0-9]+)_(.*)/$ /site_perso/creations.php?id=$1 [L]RewriteRule ^accueil/$ /site_perso/ [L]RewriteRule ^([^<>]+)/$ /site_perso/$1.php [L]ErrorDocument 404 /site_perso/err404/ Il n'y a que la première règle qui déconne. (j'ai pas pu encore tester la 2ème en ligne, parceque pour ajouter une création, je dois utiliser une page qui est dans la zone d'admin et justement ma règle pour la zone d'admin foire !! D'avance, merci
Thanh Posté 25 Janvier 2005 Posté 25 Janvier 2005 yO, essayes en remplaçant : ^administration/([^<>]+)/$ par ^administration/([0-9a-zA-Z-\.]+)/$
ElMoustiko Posté 25 Janvier 2005 Auteur Posté 25 Janvier 2005 Non, rien y fait... je test plein de trucs, et rien ne fonctionne, je comprend plus rien... Déjà que je pigeais pas grand chose aux rewrite rule, là c'est encore pire Même en mettant juste la règle qui devrait intervenir RewriteEngine onRewriteRule ^administration/([^<>]+)/$ /studi-o-normes/$1 [L] Qui devrait faire ceci : "studi-o-normes/administration/QQCHOSE/" => "studi-o-normes/QQCHOSE.php" Ca foire et ça me fait "studi-o-normes/administration.php" à la place Le bidule croit que $1 est équivalent à administration, allez savoir pourquoi...
ElMoustiko Posté 25 Janvier 2005 Auteur Posté 25 Janvier 2005 Nan, quedal... C'est vraiment du grand n'importe quoi... En fait le truc se contre fout de mon url, il me met administration.php si j'ai administration dans l'url et pis voilà... et je sais même pas comment il peut faire puisque rien ne lui dit de faire ça :s
Thanh Posté 25 Janvier 2005 Posté 25 Janvier 2005 pk faire de l'url rewriting pour un module d'admin ?
ElMoustiko Posté 25 Janvier 2005 Auteur Posté 25 Janvier 2005 Parceque moi aussi je le vaut bien Moi aussi, j'ai droit à la différence Et pis je me laisserais pas faire par ce petit con de .htaccess
Thanh Posté 25 Janvier 2005 Posté 25 Janvier 2005 lol ok. Le cordonnier veut être bien chaussé maintenant
Dan Posté 25 Janvier 2005 Posté 25 Janvier 2005 Salut, Déjà je commencerais par supprimer le ^ devant administration. Si le DOCUMENT_ROOT n'est pas déclaré de la même manière, cela évitera les différences de comportement entre local et remote. De plus, la deuxième partie de la règle commençant par / me semble bizarre (et fausse)... la racine n'étant pas la même en local et en remote. Dan
ElMoustiko Posté 25 Janvier 2005 Auteur Posté 25 Janvier 2005 Donc, j'ai modifié en fonction de ce que tu indiquais Dan RewriteRule administration/(.+)/$ $1.php [L] (avec ou sans le .php ça marche pas :s) Comme ça ne faisait rien, j'ai testé avec les adresses "réelles" RewriteRule administration/ajout_crea/$ ajout_crea.php [L] Mais rien n'y fait, je pige pas :s Pourtant quand je regarde l'explication dans les publications du HUB RewriteRule ^article/([0-9]+)/([0-9]+)\.html$ article.php?numero=$1&page=$2 [L] Dans mon cas, ça ferait un truc du genre RewriteRule ^administration/(.+)/$ $1.php [L] Enfin je comprend plus tellement ... En plus le truc arrive à réécrire mes url et les interpreter alors que mon htaccess est vide de toute règle de réécriture et là c'est vraiment trop zarb...
ElMoustiko Posté 25 Janvier 2005 Auteur Posté 25 Janvier 2005 Bon, j'ai trouvé un truc qui fonctionne... Mais je comprend pas pourquoi l'autre ne fonctionnait pas. RewriteRule ^(.+)/(.+)/$ /studi-o-normes/$2.php [L] (note : ceci fonctionne aussi) RewriteRule ^(.+)/ajout_crea/$ /studi-o-normes/ajout_crea.php [L] Mais ceci ne fonctionne pas RewriteRule ^administration/(.+)/$ /studi-o-normes/$1.php [L] Allez comprendre pourquoi
Dan Posté 25 Janvier 2005 Posté 25 Janvier 2005 Il est où ton fichier .htaccess ? ... en as-tu un au niveau supérieur ? Il faut le mettre dans /administration/ et laisser tomber le mot administration de ta règle Est-ce que ce répertoire s'appelle bien administration, tout en minuscules ?
ElMoustiko Posté 25 Janvier 2005 Auteur Posté 25 Janvier 2005 En fait j'ai pas de dossier administration. J'ai mon dossier principal J'ai mes fichier administration.php, ajout_crea.php dans ce dossier Et je veux que "administration/" utilise administration.php et "administration/ajout_crea/" utilise ajout_crea.php Je crois que je vais pas plus me casser la tête, ça fonctionne comme ça... j'ai honte mais bon, j'ai perdu pas mal de temps, alors je préfère passer à autre chose, quitte à y revenir plus tard. Mais si vous avez une méthode imparable, je suis tout ouïe bien sûr Merci à vous en tout cas d'avoir pris le temps de chercher une solution.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant