Résolu Redirection avec .htaccess

Solutions (18)
Tags :
  • google
  • Php
  • Programmation
|
Bonjour à tous,

j'ai un problème avec un de mes sites...j'ai changé sur celui la plupart des noms de pages mais les anciennes reste indexées par google (et pourtant elles ont nofollow noarchive nocache depuis belle lurette) comme je vois qu'elles générent encore un peu de trafic j'aimerai les redirigé vers mes nouvelles pages...comment dois je m'y prendre avec le .htaccess et qu'elle est la différence entre redirection 301 et 303 ?

j'avais pensé à copier le code de mes nouvelles pages dans les anciennes mais cela ne va t'il pas être considéré comme un doublon par google ?

merci par avance....

Yoann
Contenus similaires
Meilleure solution
partage
|
Bien sûr:
  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^/ancienne_page.php$ nouvelle_page.php [L,QSA,R=301]

Petite explication des flags:
L: Last, on ne lit pas la suite du .htaccess si cette ligne est utilisée
QSA: Query String Append, si des paramètres sont passés à l'url initiale, ils sont passés à la page de destination
R=301: type de redirection
  • Commenter cette solution |
Score
0
òh
òi
|
En repartant de ce que je t'avais donné:
  1. RewriteEngine on
  2. RewriteCond %{HTTP_HOST} !^www.monsite.fr$
  3. RewriteRule ^(.*)\.html http://www.monsite.fr/$1.php [QSA,L,R=301]
  • Commenter cette réponse |
Score
0
òh
òi
|
je préférerai ta première solution....car c'est toujours le même domaine et seuls les extensions des pages changent...Comment devrais-je écrire le code dans ce cas la ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Tu peux faire une redirection générale si les pages gardent le même nom et que seule l'extension change.
Si les règles sont plus complexes, je te conseille de mettre une redirection générale sur l'ancien domaine et une réécriture d'url (ou une redirection) plus affinée au niveau du site destinataire.
  • Commenter cette réponse |
Score
0
òh
òi
|
merci pour tous les renseignements..j'aurai besoin d'une dernière petite info, j'ai un site dont toutes les pages sont enregistrés en .html et je vais devoir y placer du php dessus donc je devrais les renommer toutes en .php puis je faire une redirectin générale dans le htaccess pour rediriger toutes mes pages .html vers un .php ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Il semblerait que j'ai un souci sur le PC que j'utilisais, mon "!" n'apparaissait pas.
Je te redonne le code propre:
  1. RewriteEngine on
  2. RewriteCond %{HTTP_HOST} !^www.monsite.fr$
  3. RewriteRule ^(.*) http://www.monsite.fr/$1 [QSA,L,R=301]

Celui-ci fait donc rediriger tout ce qui n'est pas www.monsite.fr vers www.monsite.fr, alors que le tien fait rediriger monsite.fr vers www.monsite.fr

Les deux solutions sont valables, a priori aucune n'est meilleure que l'autre tant que l'on a pas de sous-domaines qui seraient sur le même espace.
  • Commenter cette réponse |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par yoann54.
  • Commenter cette réponse |
Score
0
òh
òi
|
En fait je voulais aussi rediriger les http://monsite.fr en http://www.monsite.fr et c'est avec le code suivant que j'arrive a avoir le bon comportement et les redirections suivantes aussi marchent bien maintenant.....

RewriteEngine on
RewriteCond %{HTTP_HOST} ^monsite.fr$
RewriteRule ^(.*) http://www.monsite.fr/$1 [QSA,L,R=301]

Un grand merci crazycat.....
  • Commenter cette réponse |
Score
0
òh
òi
|
En fait, tu veux rediriger ce qui n'est pas www.monsite.fr vers www.monsite.fr ?
  1. RewriteEngine on
  2. RewriteCond %{HTTP_HOST} ^www.monsite.fr$
  3. RewriteRule ^(.*) http://www.monsite.fr/$1 [QSA,L,R=301]

  • Commenter cette réponse |
Score
0
òh
òi
|
ah oui j'avais mal collé un $ aprés une adresse pardon upsss !!! ça marche bien donc comme ça...mais la du coup je me demande comment je peux rediriger monsite.fr vers www.monsite.fr
il y a t'il une meilleur commande que celle que j'avais employé ?
  • Commenter cette réponse |
Score
0
òh
òi
|
j'ai un peu du mal à comprendre ton dernier message.....cela marche apparemment depuis quelques mois....pourrais tu me donner un exemple de code qui combine ma redirection des www et celles de mes vieilles pages ? j'ai encore un peu de mal avec la syntaxe...merci
  • Commenter cette réponse |
Score
0
òh
òi
|
Non, le RewriteBase est utilisé lorsque tu fais des redirections relatives et n'intervient pas dans ce cas.

Par contre, je suis étonné si ton code fonctionne, il va boucler sans fin.

Explication: si l'hôte n'est pas exactement http://monsite.fr, tu rediriges sur http://www.monsite.fr. Or celui-ci n'est pas http://monsite.fr, donc tu vas rediriger indéfiniment.
  • Commenter cette réponse |
Score
0
òh
òi
|
et si au début j'ai déjà ce code de renvoi pour les www :

RewriteEngine on
RewriteCond %{HTTP_HOST} ^monsite.fr$
RewriteRule ^(.*) http://www.monsite.fr/$1 [QSA,L,R=301]

la je dois mettre que rewritebase / aprés ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Comme dit OmaR :) 
Une fois le RewriteEngine activé et le RewriteBase défini, ce n'est plus la peine de le refaire.
Tu n'as qu'à ajouter des règles et/ou conditions.
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
SAlut,

  • Il ne faut pas mettre les numéros de ligne déjà
  • Il ne faut pas répéter les RewriteEngine et RewriteBase
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    merci pour cette réponse détaillé...cela marche bien comme je veux cependant lorsque je mets plusieurs url a redirigé j'ai une erreur 500 je dois faire une erreur de syntaxe dois je répéter rewriteEngine on et rewritebase / avant chaque nouvelle adressee ?

    1. RewriteEngine On
    2. RewriteBase /
    3. RewriteRule ^/ancienne_page.php$ nouvelle_page.php [L,QSA,R=301]
    4. RewriteEngine On
    5. RewriteBase /
    6. RewriteRule ^/ancienne_page2.php$ nouvelle_page2.php [L,QSA,R=301]


    et doit il y avoir une instruction à la fin ?

    merci par avance
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    ah d'accord je vois ! et pourrais tu me donner un exemple de code pour le .htaccess qui permet de renvoyer une page en 301....? merci
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    En effet, il vaut mieux éviter les doublons de page, la redirection par .htaccess est le mieux.

    Le type 303 est à éviter (See others), le 301 est préférable (Moved Permanently).
    D'ailleurs, le 303 est fort peu utilisé, habituellement on hésite entre le 301 et le 302 (Moved Temporarily)

    Il va falloir attendre quelques mois pour que Google oublie tes anciennes pages, et je te conseille de toujours garder tes redirections, des fois que d'autres sites aient mis des liens vers tes pages.
    • Commenter cette réponse |

    Ce n'est pas ce que vous cherchiez ?

    Tom's guide dans le monde
    • Allemagne
    • Italie
    • Irlande
    • Royaume Uni
    • Etats Unis
    Suivre Tom's Guide
    Inscrivez-vous à la Newsletter
    • ajouter à twitter
    • ajouter à facebook
    • ajouter un flux RSS