Aller au contenu

Caractères spéciaux et Url rewrinting


Sujets conseillés

Bonjour,

Après avoir beaucoup lu de posts sur la redirection 301, je n'arrive toujours pas à faire fonctionner :

RewriteRule ^modules.php?name=News http://www.monsite.com/archives.html [R=301,L]

Quand j'enlève "?name=News" cela fonctionne parfaitement, je tombe bien sur ma page en html..

Le problème semble venir du "?" ou du "=", non ? Je pensais qu'en mettant un "\" devant cela échapperait le caractère, mais il n'en est rien :fou:

Merci de bien vouloir m'aider.

:)

Lien vers le commentaire
Partager sur d’autres sites

Salut, essaye

RewriteRule ^modules.php?name=News /archives.html [R=301,L]

RewriteRule ^modules.php?name=News archives.html [R=301,L]

ou encore

RedirectPermanent /modules.php?name=News http://www.monsite.com/archives.html [R=301,L]

;)

Lien vers le commentaire
Partager sur d’autres sites

Salut, essaye

RewriteRule ^modules.php?name=News /archives.html [R=301,L]

RewriteRule ^modules.php?name=News archives.html [R=301,L]

ou encore

RedirectPermanent /modules.php?name=News http://www.monsite.com/archives.html [R=301,L]

;)

<{POST_SNAPBACK}>

salut,

parce que j'ai lu que niveau désindexation ce n'était pas terrible. En fait je souhaite que mes anciennes pages sous forme php soient désindexées par les MR au profit des pages rewritées, en html.

Si tu fais une redirection dans le fichier php (style le header pour phpnuke), les MR gardent une trace de ces pages php...

Lien vers le commentaire
Partager sur d’autres sites

RewriteRule ^modules.php?name=News http://www.monsite.com/archives.html [R=301,L]

Là tu fais une règle dans laquelle tu dis que ?name=News fait partie du nom de fichier, alors qu'il fait partie du Query String.

Tu ne pourras donc jamais avoir de règle qui validera.

La solution est de rediriger modules.php vers une nouvelle page, en ajoutant le flag QSA (Query String Append) en la fin de règle. Mais il faudra que cette nouvelle page puisse traiter l'information, et qu'elle soit donc écrite en php.

Dan

Lien vers le commentaire
Partager sur d’autres sites

La solution est de rediriger modules.php vers une nouvelle page, en ajoutant le flag QSA (Query String Append) en la fin de règle. Mais il faudra que cette nouvelle page puisse traiter l'information, et qu'elle soit donc écrite en php.

Dan

heu, c'est ce que je préconisais, non ??

Question : pourquoi traiter ça au niveau du .htaccess si faiu le retraiter derrière via php ?

il suffit simplement de faire dans modules.php

<?php
if ($_GET['name']=="News")
{
... (redirection)
}
...
?>

Modifié par jeroen
Lien vers le commentaire
Partager sur d’autres sites

heu, c'est ce que je préconisais, non ??

Question : pourquoi traiter ça au niveau du .htaccess si faiu le retraiter derrière via php ?

il suffit simplement de faire dans modules.php

Oui, c'est bien ce que tu disais... à peu de choses près :lol:

Quant-à faire la redirection dans modules.php lutôt que .htaccess, le tout est de savoir sur combien de fichiers elle s'applique.

En général, on donne une règle en exemple mais on vise plusieurs fichiers... surtout dans le cas de redirections 301. ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

<?php
if ($_GET['name']=="News")
{
... (redirection)
}
...
?>

En fait, je n'avais pas compris ta première intervention alors que tu étais dans le vrai. Ton code m'intéresse :blush: , tu veux toujours bien m'aider ?

;)

à la place de (redirection) je mets quoi pour aller vers http://www.monsite.com ?

Marci !

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...