[Résolu] url rewrinting : 2 règles sur 15 ne marchent pas

Nouveau WRInaute
Bonjour

en local, tout fonctionne correctement
en ligne chez phpnux, 2 règles ne fonctionnent pas, cela fait 2 jours que je cherche et je ne comprends pas
(www.rollersisters.com mais j'ai bloqué l'accès en attendant une solution)

Règle qui marche :
RewriteRule ^calendriers/roller-skating/([0-9]{4}).html$ obj/includes/affiche.php?type_info=calendriers&rep_info=../../calendriers&onglet_info=$1 [L]
avec lien
<a href="/calendriers/roller-skating/2008.html" title="...">Voir le calendrier 2008</a>

Règle qui ne marche pas :
RewriteRule ^resultats/courses-roller-skating/([0-9]{4}).html$ obj/includes/affiche.php?type_info=resultats&rep_info=../../resultats&onglet_info=$1 [L]
avec lien
<a href="/resultats/courses-roller-skating/2008.html" title="...">Voir tous les résultats</a>

Et si je fais un lien avec les paramètres comme ci-dessous ça marche aussi :
<a href="/obj/includes/affiche.php?type_info=resultats&rep_info=../../resultats&onglet_info=2008" title="...">test URL REWRINTING</a>

Si je remplace "resultats" par "resultat" ça marche !
Je me suis donc dit que cela venait peut-être de mon arborescence du site qui est constitué ainsi :
www/resultats
www/photos
www/calendriers
Mais dans ce cas, cela ne devrait pas marcher plus pour le calendrier ou les photos !

Merci pour votre aide, car je sèche vraiment
J'ai lu des tonnes de post sur l'url rewriting mais j'ai pas eu l'étincelle !

Cordialement

GiPou31
 
WRInaute impliqué
Tu peux mettre l'ensemble de tes règles dans des balises code? Fais un couper coller du htaccess sans rien reformater.
 
Nouveau WRInaute
voici le .htaccess :
Code:
AddType 'text/css; charset=ISO-8859-1' css

ErrorDocument 401 /obj/includes/erreur.php?erreur=401
ErrorDocument 403 /obj/includes/erreur.php?erreur=403
ErrorDocument 404 /obj/includes/erreur.php?erreur=404
ErrorDocument 500 /obj/includes/erreur.php?erreur=500
ErrorDocument 503 /obj/includes/erreur.php?erreur=503
ErrorDocument 504 /obj/includes/erreur.php?erreur=504

#Pour ne pas pouvoir lister un répertoire
DirectoryIndex index.php index.html /obj/includes/erreur.php?erreur=403

# Le serveur doit suivre les liens symboliques :
Options +FollowSymlinks

# Activation du module de réécriture d'URL :
RewriteEngine on

# Quand on tape http://rollersisters on affiche http://www.rollersisters.com/
#RewriteCond %{HTTP_HOST} !^www\.rollersisters\.com [NC]
#RewriteRule (.*) http://www.rollersisters.com/$1 [QSA,R=301,L]
#ou si ça marche pas RewriteRule (.*) http://www.rollersisters.com$1 [QSA,R=301,L]

RewriteRule   ^aide/roller-skating/([-a-z0-9]+).html$   obj/includes/affiche.php?type_info=aide&rep_info=../../menuh/aide&onglet_info=$1  [L]
RewriteRule   ^liens/roller-skating/([-a-z0-9]+).html$   obj/includes/affiche.php?type_info=liens&rep_info=../../menuh/liens&onglet_info=$1  [L]
RewriteRule   ^mentions-legales/roller-skating/([-a-z0-9]+).html$   obj/includes/affiche.php?type_info=mentions-legales&rep_info=../../menuh/mentions-legales&onglet_info=$1  [L]
RewriteRule   ^remerciements/roller-skating/([-a-z0-9]+).html$   obj/includes/affiche.php?type_info=remerciements&rep_info=../../menuh/remerciements&onglet_info=$1  [L]
RewriteRule   ^sponsors/roller-skating/([-a-z0-9]+).html$   obj/includes/affiche.php?type_info=sponsors&rep_info=../../menuh/sponsors&onglet_info=$1  [L]

# Résultats (année) :
RewriteRule   ^resultats/courses-roller-skating/([0-9]{4}).html$   obj/includes/affiche.php?type_info=resultats&rep_info=../../resultats&onglet_info=$1  [L]

# Résultats (course) :
RewriteRule   ^resultats/roller-skating/([0-9]{4})/([-a-z0-9]+)/([-a-z0-9]+).html$   obj/includes/affiche.php?type_info=course&rep_info=../../resultats/$1/$2&onglet_info=$3  [L]
RewriteRule   ^resultat/roller-skating/([0-9]{4})/([-a-z0-9]+)/([-a-z0-9]+).html$   obj/includes/affiche.php?type_info=course&rep_info=../../resultats/$1/$2&onglet_info=$3&onglet_aff=0  [L]
RewriteRule   ^test/zaza/([0-9]{4}).html$   obj/includes/affiche.php?type_info=resultats&rep_info=../../resultats&onglet_info=$1  [L]

RewriteRule   ^calendriers/roller-skating/([0-9]{4}).html$   obj/includes/affiche.php?type_info=calendriers&rep_info=../../calendriers&onglet_info=$1  [L]

# Photos (année) :
RewriteRule   ^photos/phototheque-roller-skating/([0-9]{4}).html$   obj/includes/affiche.php?type_info=photos&rep_info=../../photos&onglet_info=$1  [L]

# Galeries photos (année - sujet) :
RewriteRule   ^galeries-photos/roller-skating/([0-9]{4})/([-a-z0-9]+).html$   photos/galeries.php?annee=$1&sujet=$2  [L]

# Galerie photos :
RewriteRule   ^photos/roller-skating/([0-9]{4})/([-a-z0-9]+)/([-a-z0-9]+).html$   photos/galerie.php?annee=$1&sujet=$2&galerie=$3  [L]

RewriteRule   ^palmares/roller-skating/([a-z]+)-pouydebat/([-a-z0-9]+).html$   obj/includes/affiche.php?type_info=palmares&rep_info=../../jmc/$1/palmares&onglet_info=$2  [L]
RewriteRule   ^debuts/roller-skating/([a-z]+)-pouydebat.html$     obj/includes/affiche.php?type_info=debuts&rep_info=../../jmc/$1&onglet_info=debuts  [L]

Les 2 règles qui commencent pas ^resultats ne marchent pas !
Celle qui commence par ^test/zaza/([0-9]{4}).html$ fonctionne bien et affiche la page que je voudrais afficher avec ^resultats/courses-roller-skating/([0-9]{4}).html$

:(

Merci pour votre aide

GiPou31
 
WRInaute impliqué
Je regarderai plus en détail tout a l'heure, mais déjà il me semble qu'il y a des flags L en trop.

par exemple dans la règle suivante :
Code:
RewriteRule (.*) http://www.rollersisters.com/$1 [QSA,R=301,L]

SI tu laisse le L a la fin, alors aucune autre règel ne se déclenchra pour une adresse entrée sans le www. Ce n'est surmenet pas ce que tu veux!

Et tu as une règle avec "resultat" sans "s", et d'autres regles avec "resultats". Est-ce normal?
 
Nouveau WRInaute
Pour le flag L en trop, tu cites une ligne qui est en commentaire car je n'ai pas pour l'instant testé le fait que l'on puisse accéder au site par http://rollersisters.com et par http://www.rollersisters.com (et j'ai cru lire que c'était mieux si google n'indexait qu'une seule adresse)
Cette partie du .htaccesse sera testée après mais merci déjà d'avoir signalé ce point (remarque je m'en serai vite aperçu je pense :D )

Pour le reste, j'ai 3 règles pour les résultats :

1)avec résultats au pluriel
RewriteRule ^resultats/courses-roller-skating/([0-9]{4}).html$ obj/includes/affiche.php?type_info=resultats&rep_info=../../resultats&onglet_info=$1 [L]
Pour afficher une page avec un petit résumé des différentes événements de l'année (qui a ensuite un lien vers les pages de résultats de l'événement en question) : on passe en argument l'année

2)avec résultats au pluriel
RewriteRule ^resultats/roller-skating/([0-9]{4})/([-a-z0-9]+)/([-a-z0-9]+).html$ obj/includes/affiche.php?type_info=course&rep_info=../../resultats/$1/$2&onglet_info=$3 [L]
Pour afficher justement les pages de résultats de l'événement : on passe en argument l'année, l'événement et la page à afficher de l'événement (par exemple, 2008, france-piste,podiums)
Dans ce cas, j'affiche aussi les autres pages de résultats du même événement en onglet (par exemple, résumé, vitesse, fond...)

3)avec resultat au singulier :
RewriteRule ^resultat/roller-skating/([0-9]{4})/([-a-z0-9]+)/([-a-z0-9]+).html$ obj/includes/affiche.php?type_info=course&rep_info=../../resultats/$1/$2&onglet_info=$3&onglet_aff=0 [L]
C'est comme dans le cas 2, sauf que je n'affiche pas les autres onglets. Je comptais utiliser cette règle pour des appels différents avec des liens internes mais finalement je ne suis pas sur de m'en servir

Voilà j'espère que c'est plus clair pour toi
Merci pour ton aide
Si tu me fais passer ton adresse ip, je pourrai te permettre d'accéder au site ce serait peut-être plus parlant pour toi (actuellement j'ai un RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx pour passer car je veux pas qu'on vienne sur le site puisque la moitié de mes liens ne fonctionnent pas !!!) :oops:

GiPou31
 
WRInaute impliqué
Tu as .htaccess dans le répertoire résultats?

Si oui, il faut mettre

Code:
RewriteOptions inherit
dans le .htaccess quis e trouve dans ce répertoire.

sinon, la seule explication a laquelle je pense est qu'il y ai un conflit avec la configuration apache de chez phpnux. Leur as tu posé ton problème? Si ca marche en local chez toi et pas chez eux c'est bizarre.
 
Nouveau WRInaute
[RESOLU] url rewriting : 2 règles sur 15 ne marchent pas

Je m'étais adressé à phpnux mais je n'avais aucun retour pour l'instant

J'allais donc répondre à ton message en te disant que je n'avais pas .htaccess dans le répertoire resultats, mais avant j'y ai jeté un oeil et il y en avais un ! Je pense qu'avec mon client ftp j'ai du faire glisser à un moment donné mon .htaccess de la racine sur resultats (et je n'en avais pas en local) ! Sachant que j'en avais un seul à la racine du site j'ai pas pensé à regarder. Je suis nul... :oops:

Effectivement maintenant ça marche en enlevant le fichier. :D
Comme quoi un oeil neuf (et compétent !) est toujours profitable

Merci beaucoup, je vais ouvrir le site ce soir après quelques vérifs (faut aller bosser quand même !!!)

GiPou31
 
WRInaute impliqué
Tant mieux, car ton site est bien fait je trouve. C'aurait été dommage de ne pas pouvoir le mettre en ligne!
 
Nouveau WRInaute
merci pour le compliment ! :D
y a encore beaucoup à faire mais il fallait que je le mette en ligne car les compétitions n'attendent pas !

Merci encore pour ton aide
Je trouve que ce forum est très actif, j'ai d'ailleurs mis un lien de mon site vers WebRankInfo.com ! :wink:
 
Discussions similaires
Haut