Redirection 301 et .htaccess
23 messages • Page 1 sur 2 • 1, 2
Consultez la formation sur les stratégies de liens de WebRankInfo / Ranking Metrics
Redirection 301 et .htaccess
Bonjour,
J'ai réécris dernièrement deux urls et j'aimerais effectuer une redirection 301 des anciennes pages vers les nouvelles, mais en lisant certains tutoriels en ligne je n'arrive pas à comprendre comment m'y prendre.
Voici ce que j'ai dans mon .htaccess concernant les urls en question:
Pouvez vous m'aider SVP ?
Merci d'avance.
J'ai réécris dernièrement deux urls et j'aimerais effectuer une redirection 301 des anciennes pages vers les nouvelles, mais en lisant certains tutoriels en ligne je n'arrive pas à comprendre comment m'y prendre.
Voici ce que j'ai dans mon .htaccess concernant les urls en question:
- Code: Tout sélectionner
RewriteRule ^tags/([0-9]+)/([0-9a-zA-Z-]+)\.html$ index.php?page=tag&t=$2&p=$1 [L]
RewriteRule ^auteur/([0-9]+)/(.*)\.html$ index.php?page=author&author_name=$2&p=$1 [L]
Pouvez vous m'aider SVP ?
Merci d'avance.
e-kiwi a écrit:[R=301] ?
Oui mais comment l'appliquer, à un moment il faut inverser la regex et c'est là où je ne comprends pas.
EDIT:
Je viens d'essayer cette expression mais ça me renvois une erreur 500:
- Code: Tout sélectionner
RewriteRule ^index.php?page=tag&t=([0-9a-zA-Z-]+)&p=([0-9]+)
tags/$2/$1.html [R=301]
J'ai suivi ce tutoriel, du moins ce que j'ai pu comprendre mais ça ne fonctionne pas:
http://www.webrankinfo.com/referencemen ... ctions.php
Quand je fais maintenant ça :
Je n'ai plus d'erreur 500 mais je n'obtient aucune redirection quand je visite une page du genre index.php?page=tag&t=test&p=1
Comment savoir quand ça fonctionne ? Est ce que en visitant la page plus haut le navigateur redirige vers la page tags/1/test.html et donc cette url s'affiche dans la barre de navigation ? Ou bien rien ne se passe mais les moteurs de recherche s'en rendent compte par je ne sais quel moyen ?
Merci
- Code: Tout sélectionner
RewriteRule ^index.php?page=tag&t=([0-9a-zA-Z-]+)&p=([0-9]+)$ tags/$2/$1.html [R=301,L]
Je n'ai plus d'erreur 500 mais je n'obtient aucune redirection quand je visite une page du genre index.php?page=tag&t=test&p=1
Comment savoir quand ça fonctionne ? Est ce que en visitant la page plus haut le navigateur redirige vers la page tags/1/test.html et donc cette url s'affiche dans la barre de navigation ? Ou bien rien ne se passe mais les moteurs de recherche s'en rendent compte par je ne sais quel moyen ?
Merci
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
il faut utiliser RewriteCond %{QUERY_STRING} et un paramètre "stop" pour éviter que ca boucle :
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^page=tag&t=([0-9a-zA-Z-]+)&p=([0-9]+)$
RewriteRule ^index\.php$ tags/%2/%1.html? [R=301,L]
RewriteRule ^tags/([0-9]+)/([0-9a-zA-Z-]+)\.html$ index.php?page=tag&t=$2&p=$1&stop [L]
RewriteRule ^auteur/([0-9]+)/(.*)\.html$ index.php?page=author&author_name=$2&p=$1&stop [L]
webmasterlamogere a écrit:il faut utiliser RewriteCond %{QUERY_STRING} et un paramètre "stop" pour éviter que ca boucle :
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^page=tag&t=([0-9a-zA-Z-]+)&p=([0-9]+)$
RewriteRule ^index\.php$ tags/%2/%1.html? [R=301,L]
RewriteRule ^tags/([0-9]+)/([0-9a-zA-Z-]+)\.html$ index.php?page=tag&t=$2&p=$1?stop [L]
RewriteRule ^auteur/([0-9]+)/(.*)\.html$ index.php?page=author&author_name=$2&p=$1?stop [L]
J'ai essayé avec ce que tu me suggère mais ça ne fonctionne pas, je suis redirigé vers :
h**p://www.monsite.com/srv/www/htdocs/web99/html/tags/1/formation.html
Sinon entre temps je suis parvenu à cette solution:
- Code: Tout sélectionner
RewriteRule (.*) $1///%{QUERY_STRING} [C]
RewriteRule ^index.php///page=tag&t=([0-9a-zA-Z-]+)&p=([0-9]+)$ /tags/$2/$1.html? [R=301]
qui me redirige vers la page voulue mais malheureusement j'ai une erreur 500 !!!
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
essaye en ajoutant des / devant le deuxième paramètre de RewriteRule :
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^page=tag&t=([0-9a-zA-Z-]+)&p=([0-9]+)$
RewriteRule ^index\.php$ /tags/%2/%1.html? [R=301,L]
RewriteRule ^tags/([0-9]+)/([0-9a-zA-Z-]+)\.html$ /index.php?page=tag&t=$2&p=$1&stop [L]
RewriteRule ^auteur/([0-9]+)/(.*)\.html$ /index.php?page=author&author_name=$2&p=$1&stop [L]
La redirection fonctionne bien mais la page ne se charge pas et je recçois cette erreur: "Boucle de redirection"
Je te file mon .htaccess au cas où il y'aurai un conflit entre deux expressions:
En fait ne faut-il pas mettre [R=301, L] au lieu de [L] ?
Je te file mon .htaccess au cas où il y'aurai un conflit entre deux expressions:
- Code: Tout sélectionner
# -FrontPage-
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
RewriteEngine on
RewriteRule ^category(.*).html$ index.php?page=category&category_id=$1 [L]
RewriteRule ^article(.*).html$ index.php?page=article&article_id=$1 [L]
RewriteRule ^tags/([0-9]+)/([0-9a-zA-Z-]+)\.html$ index.php?page=tag&t=$2&p=$1 [L]
RewriteRule ^auteur/([0-9]+)/(.*)\.html$ index.php?page=author&author_name=$2&p=$1 [L]
RewriteRule ^(.*).html$ index.php?pagedb=$1 [L]
RewriteRule ^index.html$ index.php
RewriteCond %{QUERY_STRING} ^page=tag&t=([0-9a-zA-Z-]+)&p=([0-9]+)$
RewriteRule ^index\.php$ /tags/%2/%1.html? [R=301,L]
RewriteRule ^tags/([0-9]+)/([0-9a-zA-Z-]+)\.html$ /index.php?page=tag&t=$2&p=$1&stop [L]
RewriteRule ^auteur/([0-9]+)/(.*)\.html$ /index.php?page=author&author_name=$2&p=$1&stop [L]
<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
ErrorDocument 404 /error404.php
ErrorDocument 403 /error404.php
ErrorDocument 401 /error404.php
ErrorDocument 500 /error404.php
En fait ne faut-il pas mettre [R=301, L] au lieu de [L] ?
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
tu as laissé les anciennes réécritures. supprime ces deux lignes puisqu'il y a les même en dessous avec &stop :
- Code: Tout sélectionner
RewriteRule ^tags/([0-9]+)/([0-9a-zA-Z-]+)\.html$ index.php?page=tag&t=$2&p=$1 [L]
RewriteRule ^auteur/([0-9]+)/(.*)\.html$ index.php?page=author&author_name=$2&p=$1 [L]
Bon ça fonctionne pour la page " tag", en faisant ceci:
Mais quand j'ajoute la page "author" rien ne fonctionne plus, voila ce que je fais:
Une idée ?
En tout cas merci beaucoup pour ton aide, grace à toi j'y suis presque
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^page=tag&t=([0-9a-zA-Z-]+)&p=([0-9]+)$
RewriteRule ^index\.php$ /tags/%2/%1.html? [R=301,L]
RewriteRule ^tags/([0-9]+)/([0-9a-zA-Z-]+)\.html$ /index.php?page=tag&t=$2&p=$1&stop [L]
RewriteRule ^auteur/([0-9]+)/(.*)\.html$ /index.php?page=author&author_name=$2&p=$1&stop [L]
Mais quand j'ajoute la page "author" rien ne fonctionne plus, voila ce que je fais:
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^page=tag&t=([0-9a-zA-Z-]+)&p=([0-9]+)$
RewriteRule ^index\.php$ /tags/%2/%1.html? [R=301,L]
RewriteCond %{QUERY_STRING} ^page=author&author_name=(.*)&p=([0-9]+)$
RewriteRule ^index\.php$ /auteur/%2/%1.html? [R=301,L]
RewriteRule ^tags/([0-9]+)/([0-9a-zA-Z-]+)\.html$ /index.php?page=tag&t=$2&p=$1&stop [L]
RewriteRule ^auteur/([0-9]+)/(.*)\.html$ /index.php?page=author&author_name=$2&p=$1&stop [L]
RewriteRule ^(.*).html$ index.php?pagedb=$1 [L]
RewriteRule ^index.html$ index.php
Une idée ?
En tout cas merci beaucoup pour ton aide, grace à toi j'y suis presque
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
il manque un rewriterule :
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^page=tag&t=([0-9a-zA-Z-]+)&p=([0-9]+)$
RewriteRule ^index\.php$ /tags/%2/%1.html? [R=301,L]
RewriteCond %{QUERY_STRING} ^page=author&author_name=(.*)&p=([0-9]+)$
RewriteRule ^index\.php$ /auteur/%2/%1.html? [R=301,L]
RewriteRule ^tags/([0-9]+)/([0-9a-zA-Z-]+)\.html$ /index.php?page=tag&t=$2&p=$1&stop [L]
RewriteRule ^auteur/([0-9]+)/(.*)\.html$ /index.php?page=author&author_name=$2&p=$1&stop [L]
Je m'en était rendu compte juste après avoir posté le message
.
Même si j'ai ajouté le rewriterule ça ne change rien, par exemple quand je vais sur cette page:
http://www.articlesenligne.com/index.ph ... r_name=FWH
je ne suis pas redirigé
Mais quand je vais sur cette page:
http://www.articlesenligne.com/index.ph ... action&p=1
ça fonctionne !!
C'est étrange !!
.
Même si j'ai ajouté le rewriterule ça ne change rien, par exemple quand je vais sur cette page:
http://www.articlesenligne.com/index.ph ... r_name=FWH
je ne suis pas redirigé
Mais quand je vais sur cette page:
http://www.articlesenligne.com/index.ph ... action&p=1
ça fonctionne !!
C'est étrange !!
-

webmasterlamogere - WRInaute accro

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
c'est normal. il faut dupliquer toutes ces règles et enlever "&p=([0-9]+)" et "&p=$1"
Bon j'ai fais ce tu m'a demandé càd:
J'ai mis auteur/1/ parce que j'ai mis en place la pagination que récement et que mes pages indexées dans google ne tiennent que sur une seule page (la première).
Seulement ça ne fonctionne pas.
Donc pour faire simple, les pages sous forme:
/index.php?page=author&author_name=nometprenom
doivent êtres redirigées vers:
/auteur/1/nometprenom.html
Merci encore une fois
- Code: Tout sélectionner
RewriteCond %{QUERY_STRING} ^page=author&author_name=(.*)&p=([0-9]+)$
RewriteRule ^index\.php$ /auteur/%2/%1.html? [R=301,L]
RewriteRule ^auteur/1/(.*)\.html$ /index.php?page=author&author_name=$1&stop [L]
J'ai mis auteur/1/ parce que j'ai mis en place la pagination que récement et que mes pages indexées dans google ne tiennent que sur une seule page (la première).
Seulement ça ne fonctionne pas.
Donc pour faire simple, les pages sous forme:
/index.php?page=author&author_name=nometprenom
doivent êtres redirigées vers:
/auteur/1/nometprenom.html
Merci encore une fois
23 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Netlinking (liens et référencement) : apprenez ce qu'est réellement un bon lien pour le référencement et surtout comment en obtenir. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Aperçu des différents types de redirection
- Article sur le fichier .htaccess
- Référencement : gestion des redirections par Yahoo
- Comment éviter les contenus dupliqués (avec/sans le www)
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Les redirections 301 passent-elles encore le contexte sémantique ?
- Redirection (PHP, JavaScript, serveur...)
- A propos des redirections sauvages (302)
- Tutoriel complet sur les redirections (301, 302, JavaScript, ...)
- Vidéos de Matt Cutts sur le référencement Google
- htaccess et redirection 301
- redirection 301 .htaccess
- Problème redirection 301 htaccess
- code de redirection 301 en .htaccess
- Redirection 301 sur .htaccess
- help : redirection 301 - htaccess et rewriting impossible !
- Url rewriting + redirection 301 + htaccess
- Faire une redirection 301 sans htaccess
- redirection 301 + url Rewriting sur htaccess Help !
- Problème de syntaxe dans ma redirection 301 htaccess ?
- Problème Redirection 301 htaccess lycos gratuit
- Redirection 301 sélective (.htaccess ou php headers)
- Redirection 301 htaccess et %20 dans mon ancienne url
- Plusieurs Redirection 301 dans .htaccess cela fonctionne ??
- redirection 301 + plusieurs domaines + .htaccess pas pris
- Tester le type de redirection
Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs). - Analyse de l'entête HTTP
Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum