URL Rewrinting : je ne trouve pas la solution...

WRInaute discret
Bonjour,

J'utilise sur mon site l'url rewriting et je suis confronté à un problème dont je ne trouve pas la solution :

Sur mon site, j'ai des news et des articles, avec des fichiers php différents (rubiquesarticle.php, rubriquenews.php). J'utilise des répertoires virtuels et le mode de classement des news et des articles est le même. Par exemple :

monsite.com/sport/news1
monsite.com/mode/article1

Mon souci est le suivant :

Si je place le code :
RewriteRule ^([^/]+)/([^/]+).html$ rubriquesarticle.php?&rubrique=$1&article$2

Pour afficher l'URL monsite.com/sport/news1, c'est la page rubriquesarticle.php qui est appelée.

Je ne sais pas si je suis bien clair...

Merci d'avance pour votre aide. ^^
 
WRInaute impliqué
Peut être :
Code:
RewriteRule ^([sport]+)/([^/]+).html$ rubriquesarticle.php?&rubrique=sport&article$1
 
WRInaute discret
Merci pour cette réponse.

J'y avais bien pensé, le souci c'est que j'ai un nombre impressionnant de rubriques...

Suis-je donc obligé de créer une ligne d'URL Rewriting pour chacune des rubriques ? N'existe-t-il pas une autre solution ?
 
WRInaute accro
Pour que sport puisse être remplacé par n'importe quel mot, tu fais:
Code:
RewriteRule ^([a-z]+)\/([^\/]+).html$ rubriquesarticle.php?&rubrique=$1&article$2
Jean-Luc
 
WRInaute discret
jeanluc a dit:
Pour que sport puisse être remplacé par n'importe quel mot, tu fais:
Code:
RewriteRule ^([a-z]+)\/([^\/]+).html$ rubriquesarticle.php?&rubrique=$1&article$2
Jean-Luc

Je suis d'accord.

Sauf que là encore, c'est la page rubriquearticle.php qui va être appelée pour n'importe quelle url du genre monsite.com/aaaaa/bbbb alors qu'il s'agit d'une news et que je voudrais donc que ce soit la page rubriquenews.php qui soit appelée étant donné qu'il s'agit d'une news sur le sport et non d'un article.
 
WRInaute accro
Peut-être ceci:
Code:
RewriteRule ^([a-z]+)\/([a-z]+)([0-9]+)$ rubriques$2.php?rubrique=$1&$2=$3
Si ça ne répond pas à ton besoin, donne quelques exemples complets.

Jean-Luc
 
WRInaute passionné
Si a aucun moment il y a une variable qui fait qu'on sait si c'est un article ou une news,
tu ne pourras pas faire d'URL rewrit très facilement.
Ce que tu peux faire pour les news, c'est ajouter un nombre.
En plus de ton URL rewrit, il me semble que Google news prend en compte plus facilement des news avec une URL ayant des chiffres, donc tout bénef pour le référencement.
 
WRInaute discret
Malheureusement ça ne semble pas répondre à mon besoin.

Voici des exemples :

monsite.com/sport/news1.html (c'est la page rubriquesnews.php qui doit être appelée)
monsite.com/sport/news2.html (c'est la page rubriquesnews.php qui doit être appelée)
monsite.com/mode/article1.html (c'est la page rubriquesarticles.php qui doit être appelée)
monsite.com/argent/article2.html (c'est la page rubriquesarticles.php qui doit être appelée)

La structure de ces url est la même, en fonction du type (news ou article), la page appelée diffère.

Je ne sais pas comment effectuer cette différentiation dans l'URL Rewrinting, à moins de créer une ligne pour chaque rubrique comme par exemple :

RewriteRule ^sport/([^/]+).html$ rubriquesnews.php?rubrique=sport&article$1
RewriteRule ^mode/([^/]+).html$ rubriquesarticle.php?rubrique=mode&article$1
RewriteRule ^argent/([^/]+).html$ rubriquesarticle.php?rubrique=argent&article$1

Le travail serait énorme. Mon besoin est-il plus clair ?

J'ai oublié de préciser : un article ne peut être publié dans une rubrique de news et vice-versa...
 
WRInaute discret
jojohit a dit:
Malheureusement ça ne semble pas répondre à mon besoin.

Voici des exemples :

monsite.com/sport/news1.html (c'est la page rubriquesnews.php qui doit être appelée)
monsite.com/sport/news2.html (c'est la page rubriquesnews.php qui doit être appelée)
monsite.com/mode/article1.html (c'est la page rubriquesarticles.php qui doit être appelée)
monsite.com/argent/article2.html (c'est la page rubriquesarticles.php qui doit être appelée)

La structure de ces url est la même, en fonction du type (news ou article), la page appelée diffère.

Je ne sais pas comment effectuer cette différentiation dans l'URL Rewrinting, à moins de créer une ligne pour chaque rubrique comme par exemple :

RewriteRule ^sport/([^/]+).html$ rubriquesnews.php?rubrique=sport&article$1
RewriteRule ^mode/([^/]+).html$ rubriquesarticle.php?rubrique=mode&article$1
RewriteRule ^argent/([^/]+).html$ rubriquesarticle.php?rubrique=argent&article$1

Le travail serait énorme. Mon besoin est-il plus clair ?

J'ai oublié de préciser : un article ne peut être publié dans une rubrique de news et vice-versa...

Bonjour,

Voici ce que tu peux faire:

RewriteRule ^([^/]+)/news([0-9]+).html$ rubriquesnews.php?rubrique=$1&article$2
RewriteRule ^([^/]+)/article([0-9]+).html$ rubriquesarticle.php?rubrique=$1&article$2
 
WRInaute passionné
visites-web a dit:
Bonjour,

Voici ce que tu peux faire:

RewriteRule ^([^/]+)/news([0-9]+).html$ rubriquesnews.php?rubrique=$1&article$2
RewriteRule ^([^/]+)/article([0-9]+).html$ rubriquesarticle.php?rubrique=$1&article$2

Je pense que hélas, ces articles et news ne sont pas de cette forme, sinon il y aurait des améliorations à faire pour le référencement. :lol:
 
Discussions similaires
Haut