Jump to content

Rediriger des URLs dynamiques vers une URL statique


 Share

Recommended Posts

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)?

 

 

Link to comment
Share on other sites

Bonjour et bienvenue à bord !

 

Tu veux rediriger toutes tes URLs dynamiques vers une seule URL statique (hors de l'accueil) ou bien rediriger chaque URL dynamique vers sa propre URL statique ?

J'imagine que dans ton esprit URL statique signifie URL html ?

 

Si tu veux passer les paramètres de l'ancienne URL vers la nouvelle il faudra scanner la QUERY_STRING, mais la nouvelle URL aura des paramètres par défaut vu que certains ne sont pas repris dans l'ancienne URL.

 

Ce serait plus simple avec l'URL du site, parce que là on est dans le flou.


Dan

 

Link to comment
Share on other sites

Merci,

 

voici un exemple de l'ancienne URL (plus de 10000 URL de même type) :

http://fr.nouvelair.com/fr/vols/index?f_type=00&f_departure=NTE&f_destination=MIR&f_date_from=09/07/2015&f_flexibility=3&f_paxs_adults=1&f_paxs_childs=0&f_paxs_infants=0

 

Voici un exemple de la nouvelle URL :

https://www.nouvelair.com/fr/resa?depart=NTE&arrivee=MIR&aller=2017-11-24&retour=&adultes=1&enfants=0&bebes=0&departureDateTime_D=&arrivalDateTime_D=&departureDateTime_R=&arrivalDateTime_R=&fareGroupName=&fareGroupName_R=&sens=1&currency=EUR&airline=&flightNumber=&flight=&flight_retour=&webview=0&felxibilite=3

 

Comme vous le voyez les paramètres sont changés.

Je veut rediriger toutes les anciennes URLs vers la nouvelle structure en gardant uniquement la correspondance entre les deux paramètres suivant : "f_departure" et "f_destination" ==> "depart" et "arrivee" 

 

Edited by leobk
Link to comment
Share on other sites

J'ai besoin d'une règle de redirection en PHP des anciennes URLs vers les URLs du domaine principal et biensur en conservant uniquement la correspondance entre les deux paramètres suivant : "f_departure" et "f_destination" ==> "depart" et "arrivee" 

Link to comment
Share on other sites

La nouvelle URL doit être de la forme :

 

https://www.nouvelair.com/fr/resa?depart=NTE&arrivee=MIR&aller=2017-11-24&retour=&adultes=1&enfants=0&bebes=0&departureDateTime_D=&arrivalDateTime_D=&departureDateTime_R=&arrivalDateTime_R=&fareGroupName=&fareGroupName_R=&sens=1&currency=EUR&airline=&flightNumber=&flight=&flight_retour=&webview=0&felxibilite=3

 

ou bien seulement ceci :

 

https://www.nouvelair.com/fr/resa?depart=NTE&arrivee=MIR

 

:?:

 

Link to comment
Share on other sites

Dans ce cas c'est très simple à faire ;)

Dans le fichier .htaccess de l'ancien domaine, tu mets ceci :

RewriteCond %{QUERY_STRING} f_departure=([A-Z]*)&f_destination=([A-Z]*)
RewriteRule .* https://www.nouvelair.com/fr/resa?depart=%1&arrivee=%2 [R=301,L]

Cela fonctionnera quelle que soit la longueur et la valeur du paramètre de f_departure et f_destination, dans la mesure où ces deux variables se suivent toujours dans cet ordre là, l'une suivant l'autre.

 

Link to comment
Share on other sites

Merci infiniment,

Une dernière question.

j'ai constaté une liste d'URLs indexées de type 

https://www.monsite.com/index.php/open/imin_issar

https://www.monsite.com/index.php/cannes/images/series

https://www.monsite.com/index.php/news.php?id=151

.

...

Ces URLs fictives proposent le même contenu de l'accueil

je veut bien les désindexer. je ne peut pas le faire via un meta robot "noindex" par ce que ça va désindexer ma page d'accueil

Puisse-je les désindexer au niveau du robots.txt??

 

Link to comment
Share on other sites

Rebonjour,

si je veut que le paramètre "f_date_from" soit aussi pris en considération à condition que la date de départ soit J+5

que je dois ajouter à ce code?

RewriteCond %{QUERY_STRING} f_departure=([A-Z]*)&f_destination=([A-Z]*)
RewriteRule .* https://www.nouvelair.com/fr/resa?depart=%1&arrivee=%2 [R=301,L]
Link to comment
Share on other sites

Pour les URLs de sous-répertoires de index.php, je vais laisser un autre répondre, parce que je ne suis pas un expert du robots.txt

 

Et pour une date de départ à J+5, je crains que le fichier .htaccess ne permette pas de la calculer. Mais je peux me tromper :(

 

 

Link to comment
Share on other sites

Pour la désindexation des URLs en /index.php/....

le code suivant est -il correcte?

----------------------------------------------------------------------------------------

RewriteCond %{QUERY_STRING} ^index.php/(.*)$ [NC]
RewriteRule . – [E=headernoindex]
Header set X-Robots-Tag « noindex,follow » env=headernoindex

--------------------------------------------------------------------------------

 

Notant que je veux désindexer un ensemble d'URLs de type :

http://www.monsite.com/index.php/page1.htm
http://www.monsite.com/index.php/page2.htm
http://www.monsite.com/index.php/page3.htm
...

 

 

Link to comment
Share on other sites

Ou, si le répertoire n'est pas nommé page... comme ceci

 

RewriteRule /index.php/[a-z]* /index.php? [L]

La redirection vers index.php? permet de supprimer le %{QUERY_STRING} s'il est présent. Sans le ? il serait transmis automatiquement.

Cela pour fonctionner avec ton exemple donné plus haut :

index.php/news.php?id=151

 

 

Link to comment
Share on other sites

C'est mon dernier exemple qui doit être utilisé dans ce cas ;)

Peut-être en remplaçant [a-z]* par [a-z]+ pour s'assurer qu'il y a au moins un caractère.

Et éventuellement en remplaçant [L] par [NC,L] si tu as des majuscules...

 

C'est de mémoire, et non testé :whistling:

 

 

 

Link to comment
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
 Share

  • Similar Content

    • By aurelien59
      Bonjour,   Je me permet de poster ce problème sur ce forum en plus de l'avoir posté sur un autre.   Le problème survient sur un site codé en dur.   Depuis plusieurs mois après la mise en place de redirection, je rencontre un problème. La redirection a été mise en place pour rediriger simplement les pages ayant un underscore vers un tiret. Par exemple page_1.php vers page-1.php   Dans Google webmasters tools, zone "Exploration", > Erreurs d'exploration > le nombre des URL non suivies à augmenter de manière considérable sur ordinateurs et smartphone.
      Voici un exemple de page contenant l'erreur :   page-1.php/page-a.php (alors que la page correcte est page-1.php, la page page-a.php est présente sur le site en racine).   Lorsque je clic sur l'url d'erreur, dans l'onglet "Référencée sur". Les url qui apparaissent sont : http://www.monsite.fr/page-2.php/page-b.php'>>http://www.monsite.fr/page-2.php/page-b.php et http://www.monsite.fr/page-2.php/page-c.php'>>http://www.monsite.fr/page-2.php/page-c.php (non indexés sur Google).   Voici l'extrait du .htaccess ErrorDocument 404 http://www.monsite.fr/404.php RewriteEngine on RewriteCond %{HTTP_HOST} ^monsite.fr$ RewriteRule ^(.*) http://www.monsite.fr/$1 [QSA,L,R=301] RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301] RewriteRule ^(.*)\.php/$ http://www.monsite.fr/$1.php[L,R=301] RewriteRule ^(.*)\.php/(.*)\.php$ http://www.monsite.fr/$1.php[R=301] RewriteCond %{REQUEST_FILENAME} -s [OR]RewriteCond %{REQUEST_FILENAME} -l [OR]RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L]RewriteRule ^.*$ /404.php [NC,L] Merci beaucoup pour votre aide.
    • By Asaiel
      Bonjour à tous,
       
      Nouveau sur ce site, je sollicite votre aide pour résoudre un problème que je rencontre actuellement sur l'utilisation de "mod_rewrite" et de ses directives.
      Je précise que je suis novice concernant cet élément.
       
      Les données:
      Les fichiers relatifs au site que je développe actuellement se trouvent dans un dossier qui n'est pas à la racine de mon serveur de test (NAS Synology).
      l'url de base est donc de la forme suivante: https://MonNas.local/private/MonSite (et non pas https://MonSite).
       
      Je dispose du .htaccess suivant à la racine du site:
      RewriteEngine On RewriteBase /private/MonSite/ RewriteRule ^([a-zA-Z0-9\-\_\/]*)$ index.php?p=$1  
       Cette directive me permet (en principe 😅) de convertir l'adresse suivante (vérifié depuis ce site)
      URL 1 (demandée): https://MonNas.local/private/MonSite/login/lostpassword En:
      URL 2 (réécrite): https://MonNas.local/private/MonSite/index.php?p=login/lostpassword  
      Dans ma page à afficher, j'ai les références suivantes dans les en-têtes:
      <head> <meta charset="utf-8"> <title>MonTitre</title> <!-- css --> <link rel="stylesheet" href="./resources/vendor/fa/css/all.min.css"><!-- css font-awesome --> <link rel="stylesheet" href="./resources/vendor/bootstrap/css/bootstrap.min.css" id="bootstrap-css"><!-- css bootstrap --> <link rel="stylesheet" href="style.css" type="text/css"><!-- css custom --> <!-- js libraries --> <script src="./resources/vendor/bootstrap/js/bootstrap.bundle.min.js"></script><!-- js bootstrap --> <script src="./resources/vendor/jquery/js/jquery-3.6.0.min.js"></script><!-- js jquery --> <meta name="viewport" content="width=device-width, initial-scale=1"> </head>  
      Le problème:
      Lorsque j'accède à l'URL 1, aucune de mes références CSS, JS et img ne fonctionne.
      Lorsque je tape directement l'URL 2 dans la barre d'adresse, tout fonctionne bien.
       
      Pouvez-vous svp m'aider à trouver où se trouve mon erreur?
       
      Merci d'avance 🙂
    • 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 EloMC
      Bonjour,
      J'ai créé un site poeles-pas-cher.com pour lequel mon client a acheté plusieurs noms de domaine qui ont été redirigés sur l'URL principale. Il ne ressort pas dans les résultats Google ou en tout cas pas dans les 15-20 premières pages. 
      Ma question est liée à ces redirections, elles ont été faites en http, il y a la possibilité de les faire en frame, quelle est la différence ? Existe-t-il une meilleure solution et est-ce que créer des redirections provenant de différentes URLs peut faire perdre en référencement ?
      Merci pour votre aide.
      EL
×
×
  • Create New...