url rewriting pb

WRInaute discret
Hello à tous

Je suis en train de créer un site sur les pays du monde avec toutes les infos pour voyager tranquillement avec toutes les infos ( pays, langue, monnaie, climat, ... )
mais j'aimerais un sous domaine pour chaque pays .

Url d'un pays sans URL RW :
http://www.monnouveausite.com/page.php?pays=BE&infos=belgique => j'aimerai que ca devienne
http://belgique.monnouveausite.com

j'ai déja créer les sous domaines pour chaques pays (j'espère que ca me sera utile lol ) , mais après je sais pas trop faire.

je fait une redirection htaccess pour chaque pays (140 pays ) ?
Comment faire de façon simple ? :oops:
 
WRInaute impliqué
elle est jolie ton idée ! Une mine de trafic :)

Pense bien à enrichir le contenu des futurs sous domaines et surtout fais attention à la duplication du contenu !
Les sous domaines génériques subissent une pénalité s'ils sont mal liés et proposent un contenu dupliqué !

Si j'ai bien compris, voilà un brouillon :

Code:
RewriteCond %{HTTP_HOST} ^(\w{3,}).tonsite.tld
RewriteCond %1 !^(www)
RewriteRule ^([a-zA-Z0-9\-\_\.\/]*)$ tonchemin/index.php?sousdomaine=%1&query=$1 [L]

Ce n'est qu'une idée demande des renseignements auprès de ton hébergeur ;) Parce que ça diffère selon ton offre d'hébergement et les paramètres du serveur Apache ;)
 
WRInaute discret
Merci pour toutes ses infos.

je vais essayer le htaccess que tu me propose.

Oui, c'ets vrai que les sous domaines sont vites pénalisés... je vais essayé d'eviter ca ;0)
 
WRInaute accro
fais tes redirections en php, pas en .htaccess

tu vas ouvrir 140 sous domaines ?? comment vas-tu référencer 140 sites ?
 
WRInaute discret
en PHP ??

On m'avais déconseille a cause des effets négatifs sur le référencement ...

Quel code utilisé ? A mettre sur quelle page ?

Merci,


KOogar a dit:
fais tes redirections en php, pas en .htaccess

tu vas ouvrir 140 sous domaines ?? comment vas-tu référencer 140 sites ?
 
WRInaute accro
PHP c'est mauvais pour le réf ?? c'est a noté cha ^^

pour moi tu peux y aller les yeux fermer, que ce soit un fichier .htaccess ou du PHP, ca reste le serveur Apache qui va gérer.

voici le code pour rediriger tes 140 pages sur tes 140 sous domaines:
Il recupere la valeur de infos et la replace dans l'url. (pas testé en prod, juste avec les yeux ^^

Code:
<?php

          $URi = $_SERVER["REQUEST_URI"];
       
         $motif = "'(/page\.php\?pays=[A-Z]+&infos=)+([0-9]+)'";
          if (preg_match($motif,$URi,$capture))
          {
          header("Status: 301 Moved Permanently");
          header("Location: http://$capture[2].monnouveausite.com");
          }

?>
 
WRInaute accro
oui, place ce code tout en haut de ta page "page.php". Cela va rediriger vers tes sous domaine. Tu dois bien sur avoir tes scripts de placé sur tes sous domaine.
 
WRInaute passionné
Par .htaccess (ou url.rewrite sous Lighttpd) ça marche très bien et c'est la base des blogs wordpress MU.
Ca fonctionne très bien.

Par .htaccess tu auras des meilleurs perfs.
Pour utiliser ça, tu dois déclarer un champ A en wildcard (à ma connaissance chez les hébergeurs FR uniquement Gandi et OVH le propose).
 
WRInaute discret
Julia41 a dit:
Par .htaccess (ou url.rewrite sous Lighttpd) ça marche très bien et c'est la base des blogs wordpress MU.
Ca fonctionne très bien.

Par .htaccess tu auras des meilleurs perfs.
Pour utiliser ça, tu dois déclarer un champ A en wildcard (à ma connaissance chez les hébergeurs FR uniquement Gandi et OVH le propose).


Pourrais tu donner plus de détails STP

Merci
 
WRInaute accro
@meteo75
Je vois pas de quoi il parle dans ton cas, php n'a qu'un simple test + 1 header dans ton cas, c'est pipette en temps machine..; essaye de placer le code en php
 
WRInaute discret
Je viens de rebosser sur mes fameux sous-domaines.

j'ai créer les sous domaines dedans j'y ai mis ma page nommée index.php, dans chacun des sous domaine, avec le code de koogar .

Maintenant quand je tape http://belgique.monsite.com
ca m'affiche logiquement la page index.php mais il me manque la variable (pays=BE ) donc ca n'affiche pas ce que je souhaite.
Quand je fais : http://belgique.monsite.com/pays=BE C'est OK

Ma question est donc comment, faire pour que la variable soit pris en compte SANS ETRE VISIble dans l'url du sous domaine .
Pour que l'url soit http://b*lg*qu*ue.monsite.com et non http://b*lg*qu*.monsite.com/pays=BE


Merci
 
WRInaute accro
chanceux!! mon serveur etait enconre allumé quand j'ai lu ton MP

alors voila, je te file le test pour que tu comprennes un peu au passage ^^

Code:
<?php
         // http://www.monnouveausite.com/page.php?pays=BE&infos=belgique

         $URi =  "/page.php?pays=BE&infos=belgique";
         $motif = "'(/page\.php\?pays=([A-Z]+)&infos=)+([a-z]+)'";
         preg_match($motif,$URi,$capture);
         print_r($capture);
?>

Ce qui donne a l'ecran
Array ( [0] => /page.php?pays=BE&infos=belgique [1] => /page.php?pays=BE&infos= [2] => BE [3] => belgique )

Donc on capture correctement, reste plus qu'a adpaté

Code:
<?php
         // http://belgique.monsite.com/pays=BE C'est OK
          

         $URi = $_SERVER["REQUEST_URI"];
          
         $motif = "'(/page\.php\?pays=([A-Z]+)&infos=)+([a-z]+)'";

          if (preg_match($motif,$URi,$capture))
          {
          header("Status: 301 Moved Permanently");
          header("Location: http://$capture[3].monnouveausite.com/pays=$capture[2]");
          }
            
?>

++
KOog
 
WRInaute discret
Excuse moi, je ne comprends pas ...
la différence entre les 2 codes ...

Pour infos j'ai pas mal de sous domaines.

Pourrais tu me donner les étapes 1 par une ....
car la je suis complètement perdu ...
 
WRInaute accro
le premier c'est parceque j'ai testé le code sur mon serveur, j'ai préféré faire le test pour etre sur du résultat, vu l'heure...

Il n'y a qu'1 code a mettre...

donc utilise uniquement le second code que (re)voici :
Code:
<?php
 $URi = $_SERVER["REQUEST_URI"];
 $motif = "'(/page\.php\?pays=([A-Z]+)&infos=)+([a-z]+)'";
 if (preg_match($motif,$URi,$capture))
          {
          header("Status: 301 Moved Permanently");
          header("Location: http://$capture[3].monnouveausite.com/pays=$capture[2]");
          } ?>

8)
 
WRInaute accro
Il est physiquement impossible de remplacer le point (.) du sous domaine par un slash (/)

-http://sousdomaine.monsite.com
sousdomaine est un sous domaine

-http://www.monsite.com
www est aussi un sous domaine, il est toujours exploité sur la racine
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut