Version complète: sur le forum Webmaster Hub : Mot clés dans des liens
Webmaster Hub > Accueil > Le salon de Webmaster Hub
crazyfin
Bonjour a tous,


j’ai beau chercher une solution a un problème de redirection mais malheureusement rien (même pas dans vos deux excellents articles sur le sujet)

je vous expose le problème:

j’ai modifié les liens sur mon site pour que le titre ou une partie du titre des articles soient présents dans les liens vers les article :

Exemple :
L’article sous le liens :
www.monsite.fr/news/index.php?id=234 (A)
a le titre : « mod_rewrite : couteaux suisse d’apache»
J’ai modifié donc tout les liens qui mènent vers la page de cet article pour avoir :
www.monsite.fr/news/couteux_suisse_apache-234.html (B)

je transforme cet URL avec un simple :

RewriteEngine on
RewriteRule ^([a-z0-9_]+)-([0-9]+)\.html index.php?storyid=$2

Pour récupérer (A). Ceci a lieu sans problème.
Le soucis est que je voudrais que la redirection ait lieu vers (A) sans pour autant changer la valeur saisie par le visiteur ou issu du liens. Donc garder (B) dans la barre d’adresse dans le browser.

Merci de votre aide et bonne continuation
mjouan
Salut,
Il se peut que le flag par défaut soit la redirection temporaire.
Tu devrais essayer en ajoutant le flag Last.

CODE
RewriteEngine on
RewriteRule ^([a-z0-9_]+)-([0-9]+)\.html index.php?storyid=$2 [L]


Marc
crazyfin
CITATION(mjouan @ lundi 2 juin 2008 à 16:22) *
Salut,
Il se peut que le flag par défaut soit la redirection temporaire.
Tu devrais essayer en ajoutant le flag Last.

CODE
RewriteEngine on
RewriteRule ^([a-z0-9_]+)-([0-9]+)\.html index.php?storyid=$2 [L]


Marc

Merci Marc pour ta réponse mais malheureusement ce flag ne le fait pas. j'ai essayé aussi avec [R,L] mais malheureusement rien.

le problème est que je sais que c'Est faisable. je me demande si c'est pas plutôt avec Redirect qu'avec RewriteRule
mjouan
Normalement le comportement devrait être celui que tu décris.
Ce n'est pas normal.
N'y aurait-il pas d'autres règles?
Pourrais tu envoyer ton .htacess en entier STP

Essaie également en ajoutant une ligne du type:
RewriteRule ^index.php?.*$ - [L]

CODE
RewriteEngine on
RewriteRule ^index.php?.*$ - [L]
RewriteRule ^([a-z0-9_]+)-([0-9]+)\.html index.php?storyid=$2 [L]
crazyfin
CITATION(mjouan @ lundi 2 juin 2008 à 16:41) *
Normalement le comportement devrait être celui que tu décris.
Ce n'est pas normal.
N'y aurait-il pas d'autres règles?
Pourrais tu envoyer ton .htacess en entier STP

Essaie également en ajoutant une ligne du type:
RewriteRule ^index.php?.*$ - [L]

CODE
RewriteEngine on
RewriteRule ^index.php?.*$ - [L]
RewriteRule ^([a-z0-9_]+)-([0-9]+)\.html index.php?storyid=$2 [L]


mon .htacess est exactement comme tu l'as sasie
CODE
RewriteEngine on
RewriteRule ^index.php?.*$ - [L]
RewriteRule ^([a-z0-9_]+)-([0-9]+)\.html index.php?storyid=$2 [L]

smartass.gif
les autres .htaccess n'ont aucune influence sur ce répertoire.

quand tu dis le comportement doit être comme celui que j'ai cité, tu veux dire que c'est l URL saisit (B) qui doit apparaitre après redirection vers le vrai URL(A)?

mjouan
Pour que l'URL change, c'est qu'il y a un redirect.
Or normalement il n'y a pas de redirect (sauf si : [R] ou si lien externe).
As tu essayer de déclarer un RewriteBase ?
Pourrais tu envoyer ton URL exacte pour faire un test de code retour ?

Pourrais tu essayer en ajoutant un "/" avant le "index".

CODE
RewriteEngine on
RewriteRule ^index.php?.*$ - [L]
RewriteRule ^([a-z0-9_]+)-([0-9]+)\.html /index.php?storyid=$2 [L]


Marc
crazyfin
le contenu de mon .htaccess est exactement comme dans ton message:

CODE
RewriteEngine on
RewriteRule ^index.php?.*$ - [L]
RewriteRule ^([a-z0-9_]+)-([0-9]+)\.html /index.php?storyid=$2 [L]


et la redirection a bien lien avec changement de liens dans la barre d'adresse aussi.

j'ai mis un RewriteBase mais ca n'a rien changé

qu'est ce que tu entends par:

Pourrais tu essayer en ajoutant un "/" avant le "index".?

Merci pour ton aide
mjouan
Dans ta règle tu as mis:
RewriteRule ^([a-z0-9_]+)-([0-9]+)\.html index.php?storyid=$2 [L]

essaie avec
RewriteRule ^([a-z0-9_]+)-([0-9]+)\.html /index.php?storyid=$2 [L]
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.