8791 sujets

Développement web côté serveur, CMS

Bonjour à tous et à toutes,

Suite à la modification d'une partie de la structure de mon site, j'ai besoin d'effacer certaines pages, mais avant cela j'aimerai rediriger les anciennes URL vers les nouvelles.

J'ai essayé une flopée de code, sans succès Smiley decu

Mon adresse actuelle que je souhaite effacer est :
http://www.monsite.tld/content_pages.php?page=custom_page&topic_id=706
et rediriger cette dernière via .htacces vers
http://www.monsite.tld/dossier/page.php

Merci par avance de votre aide.

++
dbl5
Modifié par dbl5 (09 May 2010 - 12:45)
Bonjour koala64,

Merci pour le lien .. Oui j'ai consulté ce tuto, mais n'ai pas réussi à faire quelque chose de fonctionnel sur mon site.

Mon souci provient certainement du fait que mon URL contient un point d'interrogation, enfin je suppose Smiley biggrin

++
Certains caractères ont une signification spéciale dans une chaîne de caractère, comme le point ou le point d'exclamation. Ecrits tel quel, ils prennent cette valeur spéciale. Pour signifier que l'on veut le caractère "." ou "?", il faut les échapper, càd mettre un \ devant.
RewriteRule ^/content_pages\.php\?page=custom_page&topic_id=706$
 http://www.monsite.tld/dossier/page.php  [R=301,L]
Merci pour ces explications phpdoesnotcare .. Malheureusement le code ne fonctionne pas, la redirection ne se fait pas vers ma nouvelle page.

++
Tu as entré cette adresse dans ton navigateur :
http://www.monsite.tld/content_pages.php?page=custom_page&topic_id=706
...et il ne te redirige pas ?
ON ne peut pas rediriger une adresse contenant des paramètres GET, même avec mod_rewrite. Il faut écrire un script php qui le fasse.
Hello,

Oui j'ai noté l'adresse dans le navigateur et j'y ai toujours accès, je ne suis pas redirigé vers la nouvelle page.

@QuentinC .. Un script pour rediriger ce genre d'adresse. Tu as ça dans le fond d'un DD Smiley lol

++
a écrit :
@QuentinC .. Un script pour rediriger ce genre d'adresse. Tu as ça dans le fond d'un DD

Non, mais c'est pas bien compliqué.
1. Avec ton .htaccess, tu fais une réécriture générique sans paramètres GET. p.ex. RewriteRule ^/blog/article.php$. Cette opération n'est bien sûr pas nécessaire si tu gardes le script de redirection à cette adresse directement. Tu as le choix.
2. Dans le script, tu analyses les paramètres GET envoyés. Ils sont conservés lors de la réécriture si le flag QSA est présent.
3. Tu fais la redirection avec la fonction header.
Hello,

Merci Quentin .. Je vais essayé ça (si j'arrive à mettre en pratique tes explications) Smiley biggrin

Bonne journée.

++