Aller au contenu

Rewrite Rule (encore :s)


Sujets conseillés

Posté

Salut les Hubbeurs,

me r'vla avec un problème de règle de réécriture :blush:

C'est assez étrange, j'ai pas la même chose en local ou en ligne :gueule:

Je vous donne le topo

RewriteEngine on
RewriteRule ^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à :fou:

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 on
RewriteRule ^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 on
RewriteRule ^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

Posté

yO,

essayes en remplaçant :

^administration/([^<>]+)/$

par

^administration/([0-9a-zA-Z-\.]+)/$

Posté

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

Même en mettant juste la règle qui devrait intervenir

RewriteEngine on

RewriteRule ^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... :gueule:

Posté

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

Posté

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

Posté

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

Posté

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

Posté

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 ?

Posté

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.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...