Besoin d'aide pour mes regles de réécriture...

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

zimounet
WRInaute passionné
WRInaute passionné
 
Messages: 1796
Inscription: 8 Nov 2004

Besoin d'aide pour mes regles de réécriture...

Message le Mar Nov 22, 2005 20:46

Original comme titre, vous ne trouvez pas?

Bon alors ce coup ci, je m'attaque au rewritage (si si, c'est comme ca que l'on dit, je vous assure :lol:)

Alors j'ai un url du type:
-http://www.exemple.com/annonces-gratuites/index.php?cat=annonces-rencontres

Que je veux transformer en:
-http://www.exemple.com/annonces-gratuites/annonces-rencontres.html

Pour cela, je fais:
Code: Tout sélectionner
RewriteRule ^annonces-gratuites/(.*)\.html /annonces-gratuites/index.php?cat=$1


et cela fonctionne.

Ensuite, j'ai des url du type:
-http://www.exemple.com/annonces-gratuites/annonces.php?cat=annonces-rencontres&scat=annonces-rencontre-homme

Que je veux transformer en
-http://www.exemple.com/annonces-gratuites/annonces-rencontres-annonces-rencontre-homme.html (au mieux)
Si c'est pas possible:
-http://www.exemple.com/annonces-gratuites/annonces-rencontre-homme.html
Et c'est la que sa coince; Voici ma regle dans mon htaccess:

Code: Tout sélectionner
RewriteRule ^annonces-gratuites/(.*)-(.*)\.html /annonces-gratuites/annonces.php?cat=$1&scat=$2


Et cela ne fonctionne pas, il continu a prendre la page index.php alors que je veux qu'il me prenne la page annonces.php

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Inscription: 21 Oct 2005

Re: Besoin d'aide pour mes regles de réécriture...

Message le Mar Nov 22, 2005 21:27

zimounet a écrit:Ensuite, j'ai des url du type:
-http://www.exemple.com/annonces-gratuites/annonces.php?cat=annonces-rencontres&scat=annonces-rencontre-homme

Que je veux transformer en
-http://www.exemple.com/annonces-gratuites/annonces-rencontres-annonces-rencontre-homme.html (au mieux)
Si c'est pas possible:
-http://www.exemple.com/annonces-gratuites/annonces-rencontre-homme.html
[/code]


Vois le problème dans l'autre sens. Il va falloir dire à mod_rewrite que tu veux découper annonces-rencontres-annonces-rencontre-homme.html au niveau du tiret. Tu te doutes que le pov mod_rewrite va avoir du mal à savoir duquel tu parles.

Tu ne veux pas plutot faire ainsi :
-http://www.exemple.com/annonces-gratuites/annonces-rencontres/annonces-rencontre-homme.htm ?

Ce qui donnerait pour tes deux cas :
Code: Tout sélectionner
RewriteRule ^annonces-gratuites/([^/]+)\.html /annonces-gratuites/annonces.php?cat=$1 [L]
RewriteRule ^annonces-gratuites/([^/]+)/([^/]+)\.html /annonces-gratuites/annonces.php?cat=$1&scat=$2 [L]

zimounet
WRInaute passionné
WRInaute passionné
 
Messages: 1796
Inscription: 8 Nov 2004

Re: Besoin d'aide pour mes regles de réécriture...

Message le Mar Nov 22, 2005 21:37

Je suppose que tu parlais de mettre index.php dans la premiere des deux regles que tu m'a donné:

Code: Tout sélectionner
RewriteRule ^annonces-gratuites/([^/]+)\.html /annonces-gratuites/index.php?cat=$1 [L]
RewriteRule ^annonces-gratuites/([^/]+)/([^/]+)\.html /annonces-gratuites/annonces.php?cat=$1&scat=$2 [L]


Cela fonction en effet, sauf pour annonces.php, ou il me perd ma feuille de style qui est définit sur les deux pages (index.php et annonces.php) comme tel:

<link rel="stylesheet" type="text/css" href="../style/style.css" media="screen" />

J'en ai marre, y a toujours qqchose qui foire!! :roll:

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Inscription: 21 Oct 2005

Re: Besoin d'aide pour mes regles de réécriture...

Message le Mar Nov 22, 2005 21:49

zimounet a écrit:Je suppose que tu parlais de mettre index.php dans la premiere des deux regles que tu m'a donné


Effectivement, pas fait attention que le .php n'avait pas le même nom dans tes deux exemples :)

zimounet a écrit:Cela fonction en effet, sauf pour annonces.php, ou il me perd ma feuille de style qui est définit sur les deux pages (index.php et annonces.php) comme tel:

<link rel="stylesheet" type="text/css" href="../style/style.css" media="screen" />


Pourquoi ne pas indiquer href="/style/style.css" au lieu de href="../style/style.css", comme ça plus de pb ?

zimounet
WRInaute passionné
WRInaute passionné
 
Messages: 1796
Inscription: 8 Nov 2004

Message le Mar Nov 22, 2005 21:51

Attention aux « répertoires virtuels »

Dans les exemples qui précèdent, nous avons effectué des réécritures qui n’impactaient pas l’arborescence apparente de vos pages, pour simplifier les exemples.

Si, au lieu de réécrire, en reprenant l’exemple précédent :
RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ article.php?numero=$1&page=$2 [L]
nous utilisons
RewriteRule ^article/([0-9]+)/([0-9]+)\.html$ article.php?numero=$1&page=$2 [L]

L’URL apparente aurait la forme /article/8126/2.html au lieu de /article-8126-2.html
Dans ce cas, le navigateur « estime » que la page se trouve dans un répertoire /article/8126 qui n’a pas d’existence réelle sur votre site. Toute tentative de résolution de liens relatifs se fera donc à partir de ce répertoire inexistant et sera vouée à l’échec.

Pour éviter cela, deux solutions se présentent :

- Utiliser des liens absolus, ou mieux...
- Faire usage de la balise <base href="http://www.votresite.tld/repertoire/" > à mettre dans l'entête de votre page, entre <head> et </head>


Sur l'article de webmaster, donc j'ai compris, et ce devrais etre reglé!

Merci @ toi Chezthierry!!!! Merci beaucoup meme!

zimounet
WRInaute passionné
WRInaute passionné
 
Messages: 1796
Inscription: 8 Nov 2004

Message le Mar Nov 22, 2005 22:07

Par contre, j'ai une question qui subsiste, a part le slash / , je peux le séparer avec quoi?

J'ai vu que le tiret simple ne fonctionnais pas, puisque le mod rewrit s'embrouillais avec les autres séparateurs!

zimounet
WRInaute passionné
WRInaute passionné
 
Messages: 1796
Inscription: 8 Nov 2004

Message le Mar Nov 22, 2005 22:09

et je viens de tester la virgule et cela ne fonctionne pas

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Inscription: 21 Oct 2005

Message le Mar Nov 22, 2005 22:24

Pourtant ça devrait marcher ça :
Code: Tout sélectionner
RewriteRule ^annonces-gratuites/([^,]+)\.html /annonces-gratuites/index.php?cat=$1 [L]
RewriteRule ^annonces-gratuites/([^,]+),([^,]+)\.html /annonces-gratuites/annonces.php?cat=$1&scat=$2 [L]

zimounet
WRInaute passionné
WRInaute passionné
 
Messages: 1796
Inscription: 8 Nov 2004

Message le Mer Nov 23, 2005 14:06

Avec les slash, sa me convient bien :)

Sinon je suis en train de rewriter mon annuaire de blog, et la encore probleme:

Mes url sont de ce type -http://www.exemple.com/annu*ire-bl*gs/cat.php?cat=1

Et j'aimerais qu'elle soit de ce type
-http://www.exemple.com/annu*ire-bl*gs/cinema-1.html

Pour cela, j'ai fait:
Code: Tout sélectionner
RewriteRule ^annuaire-blogs/([^-]+)-([0-9]*)\.html /annuaire-blogs/cat.php?cat=$1 [L]


hors ma variable d'url cat != 1 (toujours ==0)

Comment faire? Que n'ai-je encore pas saisie?

ChezThierry
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 273
Inscription: 21 Oct 2005

Message le Mer Nov 23, 2005 14:20

$1 contient ce que la regex a matché dans la première parenthèse, soit, dans ton exemple, "cinema"

tu veux cat=$2 toi :)


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é