Bonjour à tous !
Novice la matière, je viens solliciter votre aide pour la création de mon fichier .htaccess...
Je vous explique mon cas...
J'ai créé il y a 3 ans un site à l'aide d'un CMS, pour lequel aucune réécriture d'URL n'avait été mise en place. Malgré cela, mon site était bien positionné dans les moteurs de recherche, aussi je ne me suis jamais trop penchée sur la question.
Mon site a donc été allègrement référencé sur la toile pendant 3 ans avec des urls du type
index.php?mod=page&ac=page&id_page=2
index.php?mod=news&ac=commentaires&id=174
/index.php?mod=forum&ac=voir&id=1546
etc etc...
Aucun problème, jusqu'à récemment. Mon petit site prenant de l'ampleur, j'ai dû pour moult raisons changer de CMS. C'est chose faite, et le nouveau présente l'avantage d'utiliser par défaut l'URL rewriting. Je précise que le contenu (articles, forum, pages etc) a été réimporté ou recréé le cas échéant sur le nouveau CMS. Donc toute ancienne page a désormais son équivalent.
Le hic, vous l'aurez compris, est que toutes mes anciennes URL en php dont le web regorge ne sont plus valides. Actuellement, le .htaccess de mon nouveau CMS redirige automatiquement ces adresses qu'il ne peut pas résoudre vers la page d'accueil du site, mais évidemment ça ne me convient pas... J'aimerais que ces ex-adresses renvoient vers les nouvelles pour que :
- D'une part les visiteurs ne se sauvent pas faute d'être tombés directement sur ce qu'ils cherchaient
- D'autre part ne pas perdre le bon positionnement dont bénéficiaient mes anciennes pages, étant donné que les nouvelles ont le même contenu.
La solution réside donc dans une redirection au niveau du .htaccess et c'est là que les ennuis commencent... Les tutos ne manquent pas sur le net pour créer des redirections 301 ou mettre en place des réécritures d'URL. J'ai réussi à faire l'un et l'autre sur des petits fichiers de tests mais je n'arrive pas à combiner le tout avec mon .htaccess existant, je me prends des erreurs 500 à chaque tentative, sans doute à cause de la redirection déjà existante qui renvoie les URLs inconnues vers la page d'accueil.
Je vous colle le contenu de mon .htaccess actuel :
Voici quelques exemples de redirections que je souhaite faire :
Renvoi de /index.php?mod=news&ac=commentaires&id=367
vers /articles/367
Renvoi de index.php?mod=forum&ac=voir&id=4823
vers /forums/topic/4823
Renvoi de index.php?mod=page&ac=page&id_page=2
vers /pages/horoscope
Un grand merci à qui pourra m'aider à trouver la solution !
Myriam
Novice la matière, je viens solliciter votre aide pour la création de mon fichier .htaccess...
Je vous explique mon cas...
J'ai créé il y a 3 ans un site à l'aide d'un CMS, pour lequel aucune réécriture d'URL n'avait été mise en place. Malgré cela, mon site était bien positionné dans les moteurs de recherche, aussi je ne me suis jamais trop penchée sur la question.
Mon site a donc été allègrement référencé sur la toile pendant 3 ans avec des urls du type
index.php?mod=page&ac=page&id_page=2
index.php?mod=news&ac=commentaires&id=174
/index.php?mod=forum&ac=voir&id=1546
etc etc...
Aucun problème, jusqu'à récemment. Mon petit site prenant de l'ampleur, j'ai dû pour moult raisons changer de CMS. C'est chose faite, et le nouveau présente l'avantage d'utiliser par défaut l'URL rewriting. Je précise que le contenu (articles, forum, pages etc) a été réimporté ou recréé le cas échéant sur le nouveau CMS. Donc toute ancienne page a désormais son équivalent.
Le hic, vous l'aurez compris, est que toutes mes anciennes URL en php dont le web regorge ne sont plus valides. Actuellement, le .htaccess de mon nouveau CMS redirige automatiquement ces adresses qu'il ne peut pas résoudre vers la page d'accueil du site, mais évidemment ça ne me convient pas... J'aimerais que ces ex-adresses renvoient vers les nouvelles pour que :
- D'une part les visiteurs ne se sauvent pas faute d'être tombés directement sur ce qu'ils cherchaient
- D'autre part ne pas perdre le bon positionnement dont bénéficiaient mes anciennes pages, étant donné que les nouvelles ont le même contenu.
La solution réside donc dans une redirection au niveau du .htaccess et c'est là que les ennuis commencent... Les tutos ne manquent pas sur le net pour créer des redirections 301 ou mettre en place des réécritures d'URL. J'ai réussi à faire l'un et l'autre sur des petits fichiers de tests mais je n'arrive pas à combiner le tout avec mon .htaccess existant, je me prends des erreurs 500 à chaque tentative, sans doute à cause de la redirection déjà existante qui renvoie les URLs inconnues vers la page d'accueil.
Je vous colle le contenu de mon .htaccess actuel :
Code:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
# Get rid of index.php
RewriteCond %{REQUEST_URI} /index\.php
RewriteRule (.*) index.php?rewrite=2 [L,QSA]
# Rewrite all directory-looking urls
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*) index.php?rewrite=1 [L,QSA]
# Try to route missing files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} public\/ [OR]
RewriteCond %{REQUEST_FILENAME} \.(jpg|gif|png|ico|flv|htm|html|php|css|js)$
RewriteRule . - [L]
# If the file doesn't exist, rewrite to index
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rewrite=1 [L,QSA]
</IfModule>
# sends requests /index.php/path/to/module/ to "index.php"
# AcceptPathInfo On
# @todo This may not be effective in some cases
FileETag Size
Voici quelques exemples de redirections que je souhaite faire :
Renvoi de /index.php?mod=news&ac=commentaires&id=367
vers /articles/367
Renvoi de index.php?mod=forum&ac=voir&id=4823
vers /forums/topic/4823
Renvoi de index.php?mod=page&ac=page&id_page=2
vers /pages/horoscope
Un grand merci à qui pourra m'aider à trouver la solution !
Myriam