Changer d'url rewriting

Benefsnet

WRInaute occasionnel
Salut,


J'aimerais vos avis sur un changement que je compte faire au niveau de l'url rewriting du forum : -www.forum-pompier.com.

Les URL's des topics sont sous cette forme :

-http://www.forum-pompier.com/ftopic5918-0-recherche-des-pompiers-pour-interview-en-vue-dun-livre.html

J'ai pris exprès un sujet avec titre long pour vous montrer ce que ça donne dans son URL...je doute que ça soit bien perçu par les moteurs (google surtout).

Ce que j'envisage, c'est de mettre mes URLS sous la forme :

-http://www.forum-pompier.com/sujet5918.html


Jusqu'à là rien de difficile. Mais comme je pense aux membres et aux visiteurs, j'aimerais que les anciennes URL's redirigent sur les nouvelles.

C'est à dire que :

-http://www.forum-pompier.com/ftopic5918-0-recherche-des-pompiers-pour-interview-en-vue-dun-livre.html

redirige vers :

-http://www.forum-pompier.com/sujet5918.html


Je pensais à une 301. Ma question est donc la suivante : Est-ce possible ?


Merci d'avance pour vos réponses :wink:
 

magic corp.

WRInaute occasionnel
Oui
Code:
RewriteRule ^/ftopic([0-9]+)-.*\.html /sujet$1.html [R=301]
J'ai pas testé ma règle, mais en gros c'est comme ça que je fairais.
 

HawkEye

WRInaute accro
Petit challenge intéressant: mettre les URL sous la forme...



-http://www.forum-pompier.com/5918-0/recherche-pompiers-interview-livre.html

(le nom de fichier est bien réduit, lorsqu'on vire les termes de moins de 5 caractères ;)
 

Benefsnet

WRInaute occasionnel
magic corp. a dit:
Oui
Code:
RewriteRule ^/ftopic([0-9]+)-.*\.html /sujet$1.html [R=301]
J'ai pas testé ma règle, mais en gros c'est comme ça que je fairais.


Cela ne marche pas :(


Pour info, j'ai un seveur dédié OVH...quelqu'un aurait le code miracle pour faire cette 301 ?
 

mr_go

WRInaute passionné
Code:
RedirectMatch 301 ^/ftopic([0-9]+)-(.*)\.html$ http://www.example.com/sujet$1.html


Un truc dans le genre ?
 

arkantos

WRInaute impliqué
Salut,

La solution de mr_go devrait marcher.

Par contre, t'ais-tu demandé si Google ne va pas te déclasser voir te sanctionner du fait que tu fait enormément de redirections 301 d'un coup ?

Si tu veux mon avis, il va te déclasser pendant un sacré bout de temps.
Merci de me donner vos avis, sa m'interesse et je pense que sa va en interresser plus d'un :wink:

Christophe
 

Benefsnet

WRInaute occasionnel
Merci mr_go, ca marche niquel :wink:


arkantos a dit:
Salut,

La solution de mr_go devrait marcher.

Par contre, t'ais-tu demandé si Google ne va pas te déclasser voir te sanctionner du fait que tu fait enormément de redirections 301 d'un coup ?

Si tu veux mon avis, il va te déclasser pendant un sacré bout de temps.
Merci de me donner vos avis, sa m'interesse et je pense que sa va en interresser plus d'un :wink:

Christophe

Je prends le risque, je dois avoir maxi 500 pages indexées en ftopic-bla-bla...je verrais bien ce que ca donnera :roll:
 

Benefsnet

WRInaute occasionnel
Autre chose, vous savez où je peux trouver quelque chose pour apprendre a décoder tout ça :

- ([0-9]*).*
- $1
- $2
- \\1
- ([a-zA-Z0-9]*)


etc...etc...


Merci :roll:
 

magic corp.

WRInaute occasionnel
On si fait avec le temps ;)

PS : le lien parle des expression regulière de manière général. Il est possible que le module de rewrite de apache ne gère l'intégralité de ce qui est indiqué sur la page.
 

mr_go

WRInaute passionné
Oui ce n'est pas difficile une fois le concept intégré.

RedirectMatch 301 ^/ftopic([0-9]+)-(.*)\.html$ http://www.example.com/sujet$1.html


Ce qui est entre parenthèse est affecté à une variable $n. La première parenthèse correspond à $1, la deuxième à $2 etc..


Dans ton cas précis, on se fiche de ce qui est dans la deuxième parenthèse. Mais pour info, $2 contient quelque chose : $2 =
0-recherche-des-pompiers-pour-interview-en-vue-dun-livre.

Ensuite ce n'est que du formalisme : (.*) Signifie une suite de n'importe quel caractère (de 0 à n), (.+) signifie une suite de n'importe quel caractère (de 1 à n).

\\1 est le formalisme utilisé pour les expressions régulières en PHP notamment. En effect, on ne pourrait utiliser les symbole $ qui est utilisé pour les varaibles PHP.

donc en gros \\1 correspond en PHP notammet à $1 pour le code Apache.


Le crochet est utilié pour les groupes : ([a-zA-Z0-9]*) signifie n'importe quel caractère alpha numérique.

donc ([a-zA-Z0-9]*) retournera vrai pour 501sdf mais faux pour sdffsd-505...

Autre exemple :

([12345]*) retournera vrai pour 515 mais faux pour 5041, car "0" n'est pas dans le groupe.

Sache qu'il existe des groupes déjà prédéfinis : ainsi au lieu d'utiliser ([a-zA-Z0-9]*) tu peux utiliser ([:alnum:]*) .
 

Benefsnet

WRInaute occasionnel
mr_go a dit:
Oui ce n'est pas difficile une fois le concept intégré.

RedirectMatch 301 ^/ftopic([0-9]+)-(.*)\.html$ http://www.example.com/sujet$1.html


Ce qui est entre parenthèse est affecté à une variable $n. La première parenthèse correspond à $1, la deuxième à $2 etc..


Dans ton cas précis, on se fiche de ce qui est dans la deuxième parenthèse. Mais pour info, $2 contient quelque chose : $2 =
0-recherche-des-pompiers-pour-interview-en-vue-dun-livre.

Ensuite ce n'est que du formalisme : (.*) Signifie une suite de n'importe quel caractère (de 0 à n), (.+) signifie une suite de n'importe quel caractère (de 1 à n).

\\1 est le formalisme utilisé pour les expressions régulières en PHP notamment. En effect, on ne pourrait utiliser les symbole $ qui est utilisé pour les varaibles PHP.

donc en gros \\1 correspond en PHP notammet à $1 pour le code Apache.


Le crochet est utilié pour les groupes : ([a-zA-Z0-9]*) signifie n'importe quel caractère alpha numérique.

donc ([a-zA-Z0-9]*) retournera vrai pour 501sdf mais faux pour sdffsd-505...

Autre exemple :

([12345]*) retournera vrai pour 515 mais faux pour 5041, car "0" n'est pas dans le groupe.

Sache qu'il existe des groupes déjà prédéfinis : ainsi au lieu d'utiliser ([a-zA-Z0-9]*) tu peux utiliser ([:alnum:]*) .


Merci pour toutes ces précisions, c'est sympa :wink:
 

Discussions similaires

Haut