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

Nouveau WRInaute
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.
 
WRInaute passionné
si c'est a la racine (et si la partie variable est "quelquechose-truc") :
Code:
RewriteEngine on
RewriteRule ^dossier/(.*)-(.+)\.html$ /dossier/page.php?id=$2 [L]
si c'est dans dossier :
Code:
RewriteEngine on
RewriteRule ^(.*)-(.+)\.html$ /dossier/page.php?id=$2 [L]
 
Nouveau WRInaute
webmasterlamogere a dit:
si c'est a la racine (et si la partie variable est "quelquechose-truc") :
Code:
RewriteEngine on
RewriteRule ^dossier/(.*)-(.+)\.html$ /dossier/page.php?id=$2 [L]
si c'est dans dossier :
Code:
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
 
WRInaute passionné
si "quelquechose" est une constante permettant de différencier cette règle tu peux faire :
Code:
RewriteEngine on
RewriteRule ^quelquechose-(.*)-(.+)\.html$ page.php?id=$2 [L]
 
Nouveau WRInaute
webmasterlamogere a dit:
si "quelquechose" est une constante permettant de différencier cette règle tu peux faire :
Code:
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
 
Nouveau WRInaute
webmasterlamogere a dit:
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...
 
WRInaute passionné
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.
 
Discussions similaires
Haut