Jump to content
Sign in to follow this  
dams41

[RedirectPermanent] Règle non suivie par apache

Rate this topic

Recommended Posts

Bonjour,

Je dois, pour des questions de référencement, rediriger d'anciennes pages d'un site vers de nouvelles, à l'aide d'une redirection 301.

Je sais qu'il y a deux manières de faire : RedirectPermanent ou RewriteRule.

Les adresses d'origine sont de la forme

ancien.php?page=alpha&id_rubrique=8

Les nouvelles adresses sont de la forme

nouveau.php?id_doc=27

Sans que id_rubrique et id_doc aient quoi que ce soit à voir ensemble. C'est pourquoi, j'ai décidé (j'ai pas vraiment le choix) d'écrire une règle par page.

Il existe environ une centaine de page, et comme il n'y a pas de liens possibles entre les anciennes et les nouvelles pages, j'ai écrit les règles de la façon suivante :

Avec RewriteRule

RewriteEngine On
RewriteRule ^ancien.php?page=alpha&id_rubrique=8$ http://www.exemple.fr/nouveau.php?id_doc=27 [L,R=301]

qui ne fonctionne absolument pas (j'obtient une erreur 404).

Avec RedirectPermanent

RedirectPermanent ancien.php?page=alpha&id_rubrique=8 http://www.exemple.fr/nouveau.php?id_doc=27

Qui ne fonctionne pas mieux (erreur 404 aussi).

Par ailleurs, et en ayant testé pas mal de chose, j'ai remarqué que la réécriture suivante fonctionne :

RewriteRule ^ancien.php$ http://www.exemple.fr/nouveau.php?id_doc=27 [L,R=301]

Lorsque j'apelle ancien.php?page=*&id_rubrique=*, la redirection fonctionne, je me retrouve bien sur la page http://www.exemple.fr/nouveau.php?id_doc=27...

Le problème, c'est que je ne peux pas différencier mes pages, et donc, rediriger chaque ancienne URL par la nouvelle correspondante...

En espérant avoir été clair...

Share this post


Link to post
Share on other sites

Essaie ceci:

RewriteCond %{QUERY_STRING} ^page=alpha&id_rubrique=8$
RewriteRule ^ancien\.php$ http://www.exemple.fr/nouveau.php?id_doc=27 [L,R=301]

Jean-Luc

Share this post


Link to post
Share on other sites

Bonjour,

Avec les règles de réécriture, il faut faire attention au duplicate-content : il y aura deux URL référencées par les moteurs de recherche, qui auront un contenu à 100% identique.

Il te vaut mieux privilégier la redirection permanente.

L'id rubrique et l'id document n'ont aucun lien possible, même par la base de donnée ?

J'ai été confronté à ce problème récemment, je voulais changer les URL's de mon forum. En PHP, j'ai créé une redirection permanente... Je pense que ça a marché. :)

Share this post


Link to post
Share on other sites

_AT_Jean-luc : ça marche :) , et pour toutes les pages ! merci beaucoup de m'avoir aidé, j'étais pas prêt de trouvé !

_AT_sarc : en fait, j'ajoute R=301, qui indique une redirection 301 tout comme RedirectPermanent, donc pas de probleme de duplicate-content

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By cyberdede
      Bonjour à tous

      je voudrais quand je tape https;//monsite/dossier accéder à https;//monsite/dossier/index.php
      or j'accède à https;//monsite/dossier/ avec un 404

      en localhost ca fonctionne

      pour la racine https;//monsite c'est ok

      mon htaccess
       
      RewriteEngine On Options -Indexes RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] RewriteCond %{HTTPS} ^off$ [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] AddDefaultCharset UTF-8 ErrorDocument 404 /404.php  
    • By kevinjoseph
      Bonjour, j’ai un gros problème sur mon site Wordpress . Du jour au lendemain, mon site wordpress fais une redirection vers un autre site wordpress que j’ai crée ,sans que je touche à quoi que ce soit. Quand j’essai d’aller sur l’admin pour désactiver les plugins et voir d’où peut venir le problème. Impossible d’accéder, sa me redirige vers l’admin de l’autre site. Au final il est impossible que j’accède au site via (google, la bare de recherche, les favoris, l’admin…) pour voir ce qu’il fonction pas, j’ai juste accès au FTP. J'ai essayé de voir d'où pouvez venir ce bug en supprimant les plugins, le théme, mes derniers modifications, regarder sur le .htaccess si il y avais quelque par le nom de domaine de l'autre site écrit. Ca n'a rien changer, le site continue de ce rediriger automatiquement vers l'autre site. Si vous avez une idée d’où sa peut venir ou comment faire pour arranger ça et surtout comment éviter que sa ce reproduise. Sa m’aiderai beaucoup, merci d’avance.
      voici le code du .htaccess:
       
      # BEGIN WordPress
      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      </IfModule>

      # END WordPress
      ~   Ludovic • 16:28    
    • By leobk
      Bonjour,
       
      J'ai un sous-domaine www.fr.monsite.com dédié pour la réservation des vols
      j'ai redirigé récemment ce sous-domaine vers le site principal www.monsite.com et le nombre des erreurs 404 a explosé
      un nombre énorme d'URLs de type :
      www.fr.monsite.com/fr/vols/index?f_type=01&f_departure=TLS&f_destination=DJE&f_date_from=08/09/2013&f_date_to=22/09/2013&f_flexibility=3&f_paxs_adults=2&f_paxs_childs=0&f_paxs_infants=0
      redirigent vers :
      www.monsite.com/fr/vols/index?f_type=01&f_departure=TLS&f_destination=DJE&f_date_from=08/09/2013&f_date_to=22/09/2013&f_flexibility=3&f_paxs_adults=2&f_paxs_childs=0&f_paxs_infants=0
       
      L'URL de destination est biensur introuvable 404, puisque les variables utilisés dans les deux sites ne sont pas identiques
      Voici la structure d'URL si on fait une recherche de vol sur le site principal :
      https://www.monsite.com/fr/resa?depart=SXF&arrivee=NBE&aller=2017-11-10&retour=2017-11-30&adultes=1&enfants=1&bebes=0&departureDateTime_D=&arrivalDateTime_D=&departureDateTime_R=&arrivalDateTime_R=&fareGroupName=&fareGroupName_R=&sens=2&currency=EUR&airline=&flightNumber=&flight=&flight_retour=&webview=0&felxibilite=2
       
       
      existe-il un moyen pour rediriger l'ensemble des URLs dynamiques du sous-domaines vers une URL statique du domaine principale (autre que l'accueil)?
       
       
    • By PieceMobile
      Bonjour,



      J'espère que vous allez tous bien.



      Auriez vous une solution pour rediriger ( via une règle htaccess par exemple ) :



      http://www.mon-site.com/blabla.html?ps_mobile_site=1



      vers : http://www.mon-site.com/blabla.html



      A mon avis, s'agissant d'un paramètre d'URL, de ce que j'ai cru comprendre -a mon petit niveau- c’était pas possible, mais ça me dépannerai pas mal si l'un d'entre vous avait une idée.



      Merci d'avance





×
×
  • Create New...