[Résolu] Mise en place d'url rewriting non fonctionnelle

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

gregfred8
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 13 Sep 2007

[Résolu] Mise en place d'url rewriting non fonctionnelle

Message le Ven Fév 15, 2008 11:01

Bonjour à tous,

Mon serveur supporte la réecriture (via htaccess) cependant je n'arrive pas à la mettre en place...

Voici l'url de départ :

http://www.monsite.com/dossier/page.php?id=999999

Je vousdrais obtenir :

http://www.monsite.com/dossier/quelquec ... uc-id.html

Et cela avec un quelque chose de different selon l'id de la page.

Est ce possible et si oui comment ?
Meme si je dois faire les regles manuellement cela me va.
Je pense qu'il faut que je mette mon htaccess dans le "dossier" en question mais apres les regles que j'essaye de fontionne pas.

Pouvez vous m'aider ? Merci d'avance.
Dernière édition par gregfred8 le Lun Fév 18, 2008 10:41, édité 1 fois.


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Ven Fév 15, 2008 13:36

si c'est a la racine (et si la partie variable est "quelquechose-truc") :
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^dossier/(.*)-(.+)\.html$ /dossier/page.php?id=$2 [L]

si c'est dans dossier :
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^(.*)-(.+)\.html$ /dossier/page.php?id=$2 [L]

gregfred8
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 13 Sep 2007

Message le Ven Fév 15, 2008 15:48

webmasterlamogere a écrit:si c'est a la racine (et si la partie variable est "quelquechose-truc") :
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^dossier/(.*)-(.+)\.html$ /dossier/page.php?id=$2 [L]

si c'est dans dossier :
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^(.*)-(.+)\.html$ /dossier/page.php?id=$2 [L]


Je te remercie de ta reponse, cependant cela ne marche pas j'avais déja essayé un truc dans le genre...

En fait je vais m'expliquer un peu plus, cela permettra peut etre d'obtenir la solution.

Prenons au hasard 2 de mes url :

a) http://www.monsite.com/dossier/page.php?id=888
b) http://www.monsite.com/dossier/page.php?id=666

Je voudrais pouvoir réecrire ces url de cette facon (sachant que mon htaccess se trouvera dans "dossier)

a)http://www.monsite.com/dossier/quelquechose-AAA-888.html
b)http://www.monsite.com/dossier/quelquechose-BBB-666.html

Sachant que AAA et BBB sont different car mais id correponde à des villes mais elle ne passe pas dans l'url... est ce possible ou est ce que je dois passer les villes dans l'url ou chercher ma ville via une requete...

Merci d'avance


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Ven Fév 15, 2008 16:31

si "quelquechose" est une constante permettant de différencier cette règle tu peux faire :
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^quelquechose-(.*)-(.+)\.html$ page.php?id=$2 [L]

gregfred8
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 13 Sep 2007

Message le Ven Fév 15, 2008 18:35

webmasterlamogere a écrit:si "quelquechose" est une constante permettant de différencier cette règle tu peux faire :
Code: Tout sélectionner
RewriteEngine on
RewriteRule ^quelquechose-(.*)-(.+)\.html$ page.php?id=$2 [L]


OK j'ai plus ou moins compris (je fais des progrès...) cela fonctionne, cependant etant donné que (.*) signifie que je peux mettre ce que je souhaite la recriture ne ce fait pas quand j'accede à la page php mais si j'accede à la page html c'est ok.

Il fuat donc que je redirige mes php vers les html correpondante, pour ne pas perdre mes positions, pr, etc... j'ai essayé ca :

RewriteRule ^page.php?id=666 http://www.monsite.com/dossier/quelquec ... a-666.html [R=301,L]

et

RewriteRule http://www.monsite.com/dossier/page.php?id=666 http://www.monsite.com/dossier/quelquec ... a-666.html [R=301,L]

Sans succés... logiquement je dois et je peux les rediriger ? meme si mon aaa et à mettre manuellemnent... en tout cas encore merci


webmasterlamogere
WRInaute passionné
WRInaute passionné
 
Messages: 1874
Inscription: 17 Déc 2006

Message le Ven Fév 15, 2008 21:01

le mieux est de faire un test en php : si la page chargée est différente de la page attendue alors tu peux faire une redirection avec la fonction header()
sinon avec le .htaccess il y a l'instruction :
RedirectPermanent /ancienneurl.php http://tonsite.fr/nouvelleurl.html

gregfred8
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Inscription: 13 Sep 2007

Message le Lun Fév 18, 2008 10:39

webmasterlamogere a écrit:le mieux est de faire un test en php : si la page chargée est différente de la page attendue alors tu peux faire une redirection avec la fonction header()
sinon avec le .htaccess il y a l'instruction :
RedirectPermanent /ancienneurl.php http://tonsite.fr/nouvelleurl.html


Je te remercie beaucoup !

Tout fonctionne ! , J'ai opté pour la redirection avec la fonction header().

Encore merci, car sans ton aide je serait encore loin du résultat...


Suede
WRInaute accro
WRInaute accro
 
Messages: 3722
Inscription: 4 Oct 2002

Message le Lun Fév 18, 2008 10:46

rewrite réécris les urls.
Ton id ne fait pas partie de l'url mais du query string.
Pour faire ce que tu veux, il faut que tu utilises le rewrite cond en faisant un test sur Query string (tu tests que tu as id=([09].) et tu réinjectes le parametre dans ta reecriture.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité