Aller au contenu

Probleme de rewriting dans .htaccess


Sujets conseillés

Bonjour,

Voici un extrait de mon .htaccess.

RewriteRule ^t([0-9]*)_([A-Za-z0-9-]*)\.htm index.php?showtopic=$1&furl=yes [L]
RewriteRule ^t([0-9]*)_([0-9]*)_([A-Za-z0-9-]*)\.htm index.php?showtopic=$1&st=$2&furl=yes [L]
RewriteRule ^f([0-9]*)_([A-Za-z0-9-]*)\.htm index.php?showforum=$1&furl=yes [L,E=furl:yes]
RewriteRule ^f([0-9]*)_([0-9]*)_([A-Za-z0-9-]*)\.htm index.php?showforum=$1&st=$2&furl=yes [L,E=furl:yes]
RewriteRule ^viewtopic_([0-9]*)_([0-9]*).html index.php?act=ST&f=$1&t=$2&s= [L]
RewriteRule ^pagef_([0-9]*)_([0-9]*)_([0-9]*).html index.php?s=&act=SF&f=$1&prune_day=$2&sort_by=Z-A&sort_order=&st=$3 [L]
RewriteRule ^paget_([0-9]*)_([0-9]*)_([0-9]*).html index.php?s=&act=ST&f=$1&t=$2&st=$3 [L]

En fait ce qui me pose probleme, c'est la premiere regle. Ca me repond toujors erreur dans le lien demande.

RewriteRule ^t([0-9]*)_([A-Za-z0-9-]*)\.htm index.php?showtopic=$1&furl=yes [L]

Cette regle ne fonctionne pas

alors que celle ci :

RewriteRule ^paget_([0-9]*)_([0-9]*)_([0-9]*).html index.php?s=&act=ST&f=$1&t=$2&st=$3 [L]

fonctionne.

J'ai essaye plein de trucs.

J'ai meme essaye

RewriteRule ^t([0-9]*).htm http://ww.MONDOMAIN.com [L]

mais ca marche pas

alors j'ai duplique la ligne qui marche et je l'ai modiee comme suit, mais ca marche toujours pas.

RewriteRule ^page2t_([0-9]*).html index.php?s=&act=ST&f=10&t=$1&st=0 [L]

Par contre si je mets directement dans firefox ca marche

http://www.MOMDOMAINE.com/forum/index.php?s=&act=ST&f=10&t=NUMERO&st=0

C'est un peu comme si je pouvais pas ajouter de regles, les anciennes fonctionnes, les nouvelles non.

Voyez vous une erreur dans mon code ?

Lien vers le commentaire
Partager sur d’autres sites

Tu fais quoi avec le $2 dans cette règle :

RewriteRule ^t([0-9]*)_([A-Za-z0-9-]*)\.htm index.php?showtopic=$1&furl=yes [L]

Tu pourrais d'ailleurs l'écrire:

RewriteRule ^t([0-9]*)_([A-Z0-9-]*)\.htm index.php?showtopic=$1&furl=yes [NC,L]

si tu utilisais le $2 ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

Tu fais quoi avec le $2 dans cette règle :

RewriteRule ^t([0-9]*)_([A-Za-z0-9-]*)\.htm index.php?showtopic=$1&furl=yes [L]

Tu pourrais d'ailleurs l'écrire:

RewriteRule ^t([0-9]*)_([A-Z0-9-]*)\.htm index.php?showtopic=$1&furl=yes [NC,L]

si tu utilisais le $2 ;)

Dan

<{POST_SNAPBACK}>

Salut Dan,

Tout d'abord merci de ta reponse.

Concernant mon probleme, je suis un imbecile dans le repertoire forum j'ai un autre htaccess qui contient les regles propres au forum et donc ca pouvait pas marcher.

Concernant le NC, c'est pas utile, car le texte est deja en lowcase.

Concernant le $2, je vais l'utiliser, en fait je comptais l'utiliser indirectement. Car je veux verifier l'unicite de l'URL. Je sais pas si je suis clair. En gros, si on met n'importe quoi dans ce qui est $2, ca redirigera en 301 sur la bonne page, mais j'avais pense faire une comparaison d'url avec url attendue. Mais comme tu dis je peux juste comparer $2 avec ce qu'il devrait etre.

Le probleme, eviter les boucles qui pourrait mettre par terre le serveur

En fait j'essaie de corriger les differents rewriting fait jusqu'a present.

Car idiot que je suis j'ai deplace forums dans forum, j'arrivait pas a faire ma rewriterule, du coup j'avais fait un lien symbolique de forums vers forum

mauvaise idee car duplicate content (sans le vouloir)

j'avais aussi fait du rewriting dans le forum, mais pareil pas si bien fait donc duplicate content.

En gros les pages de mon forum doivent etre en 3 ou 4 fois sans que ce soit fait expres et donc je pense que google m'aime pas !

Donc comme je suis gentils (et idiot) je cherche comment corriger mon erreur

Lien vers le commentaire
Partager sur d’autres sites

Si tu veux déplacer toutes tes URLs de "/forums/" vers "/forum/", il suffisait d'un Redirectpermanent, non ? Pas besoin de 36000 règles pour cela.

Et dans le répertoire "forum" tu mets les règles propres aux redirections du forum...

De plus, si ton texte est déjà en lowercase, il n'est pas utile de mettre [A-Z]a-z0-9 dans ta règle, tu perds du temps à valider cela. Remplace-le par [a-z0-9] ;)

Lien vers le commentaire
Partager sur d’autres sites

Si tu veux déplacer toutes tes URLs de "/forums/" vers "/forum/", il suffisait d'un Redirectpermanent, non ? Pas besoin de 36000 règles pour cela.

Et dans le répertoire "forum" tu mets les règles propres aux redirections du forum...

De plus, si ton texte est déjà en lowercase, il n'est pas utile de mettre [A-Z]a-z0-9 dans ta règle, tu perds du temps à valider cela. Remplace-le par [a-z0-9] ;)

<{POST_SNAPBACK}>

merci, je prends bonne note de tout cela

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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