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

×
×
  • Create New...