url rewriting dans nom de domaine

Consultez la formation sur les stratégies de liens de WebRankInfo / Ranking Metrics

jeanvilou
Nouveau WRInaute
 
Messages: 23
Inscription: Mar Avr 22, 2008 9:51

url rewriting dans nom de domaine

Message le Mar Mai 13, 2008 16:50

Bonjour,

je sais que le sujet est évoqué souvent mais voila mon problème, il n'est pas si évident.

J'ai un site internet multilangues et plusieurs noms de domaines locaux.
La variable de langue qui se stocke en session est d'abord passé en GET.

Ce que je souhaite c'est que si un internet tape www.monsite.es il arrive en fait sur www.monsite.fr/?langue=es MAIS que l'url affichée soit www.monsite.es.

Je sais qu'avec une redirection invisible il n'y a pas de probleme, mais justement je souhaite que les noms des répertoires (en fait en url rewriting) soient visibles. Donc que:

www.monsite.es/repertoire appelle en fait www.monsite.fr/repertoire par exemple...

si quelqu'un cerne mon probleme et a une solution je suis preneur ! Merci par avance de votre aide !


webmasterlamogere
WRInaute accro
WRInaute accro
 
Messages: 1874
Inscription: Dim Déc 17, 2006 21:08

Message le Mar Mai 13, 2008 16:58

tu peux ajouter une condition pour limiter une règle de réécriture avec l'instruction RewriteCond

jeanvilou
Nouveau WRInaute
 
Messages: 23
Inscription: Mar Avr 22, 2008 9:51

Message le Mar Mai 13, 2008 17:02

quelque chose comme ca ?

RewriteCond %{HTTP_HOST} www\.ndd_a_rediriger_sans_extension\.extension$
RewriteRule ^(.*)|$ http://www.ndd_du_site_avec_extension/$1 [R=301,L]

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Mar Mai 13, 2008 17:41

Ne met pas R=301 sinon c'est l'adresse réécrite qui va s'afficher, pas l'adresse tapée dans le navigateur.

Et le L n'est pas nécéssaire si tu fais une redirection externe.

Bref, essaie donc ça:

Code: Tout sélectionner
RewriteCond %{HTTP_HOST} ^www\.monsite\.es$
RewriteRule (.*) http://www.monsite.fr/?langue=es [QSA]


le QSA est là si tu passe d'autres paramètres.

Pour que ça marche il faut que le domaine en .es pointe vers le même espace disque que le domaine en .fr

jeanvilou
Nouveau WRInaute
 
Messages: 23
Inscription: Mar Avr 22, 2008 9:51

Message le Mer Mai 14, 2008 10:48

ok, merci, je vais tester

jeanvilou
Nouveau WRInaute
 
Messages: 23
Inscription: Mar Avr 22, 2008 9:51

Message le Mer Mai 14, 2008 16:08

hello, ok j'ai testé ceci:

RewriteCond %{HTTP_HOST} ^www\.monsite\.co.uk$
RewriteRule (.*) http://www.monsite.fr/?lang=uk [QSA]

et ca fonctionne, il y a bien une redirection qui s'effectue MAIS ce que je cherche à faire serait au lieu d'avoir http://www.monsite.fr/test/?l=uk dans la barre d'adresse d'avoir http://www.monsite.co.uk/test/?l=uk

pour faire clair:

si on tape www.monsite.co.uk/test on arrive sur www.monsite.fr/test/?lang=uk mais qui s'affiche www.monsite.co.uk/test dans la barre d'état

je suis désolé si je ne suis pas très clair mais je ne vois pas bien comment l'expliquer, si toutefois quelqu'un a une idée... merci !

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Mer Mai 14, 2008 18:25

C'est clair, pas de souci.

Est-ce que tes deux domaines pointent vers le même espace disque? Autrement dit, sans réécriture, est-ce que www.monsite.co.uk et www.monsite.fr sont sur le même hébergeur et pointent vers le même espace disque?

jeanvilou
Nouveau WRInaute
 
Messages: 23
Inscription: Mar Avr 22, 2008 9:51

Message le Jeu Mai 15, 2008 10:40

non actuellement ce n'est pas redirigé exactement vers le même endroit, c'est sur le même serveur mais sur deux dossier dufférents, cela peut évidemment etre changé si ca peut m'aider a obtenir des urls optimisées

jeanvilou
Nouveau WRInaute
 
Messages: 23
Inscription: Mar Avr 22, 2008 9:51

Message le Jeu Mai 15, 2008 13:54

bon j'ai fait pointer les deux urls vers le même serveur avec un alias pour le point co.uk mais j'ai un message d'erreur interne...

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Ven Mai 16, 2008 8:00

jeanvilou a écrit:bon j'ai fait pointer les deux urls vers le même serveur avec un alias pour le point co.uk mais j'ai un message d'erreur interne...


C'est normal, ta redirection pointant désormais sur le meme endroit, ca boucle.

Maintenant que tes deux domaines sont équivalents sur le disque, tu peux mettre une règle très simple:

Code: Tout sélectionner
RewriteCond %{HTTP_HOST} ^www\.monsite\.co.uk$
RewriteRule (.*) /index.php?lang=uk [QSA]


en supposant que ta page d'index est index.php

jeanvilou
Nouveau WRInaute
 
Messages: 23
Inscription: Mar Avr 22, 2008 9:51

Message le Ven Mai 16, 2008 10:44

bonjour, merci de l'astuce, la redirection et la réécriture se font bien, juste un bémol, mais liens ne fonctionnent pas...

par exemple si je souhaite accéder à la page:
http://www.monsite.co.uk/pages.php?p=ma_page

j'arrive sur
http://www.monsite.co.uk/index.php?lang=uk&p=ma_page

c'est normal vu la règle d'écriture, car si j'ai bien compris a chaque fois qu'on écrit www.monsite.co.uk c'est remplacé par /index.php?lang=uk

j'ai également une autre règle qui est
RewriteRule ^([a-z0-9_-]+)$ pages.php?p=$1 [L]

qui permet de remplacer http://www.monsite.co.uk/pages.php?p=ma_page par http://www.monsite.co.uk/ma_page

je suis désolé je ne suis au top en matière de réécriture d'url... comment puis-je faire pour que mes liens soient pris en compte ? merci par avance ! (pour que http://www.monsite.co.uk/ma_page s'affiche correctement)

jeanvilou
Nouveau WRInaute
 
Messages: 23
Inscription: Mar Avr 22, 2008 9:51

Message le Ven Mai 16, 2008 11:45

sinon je peux aussi par une méthode différente qui serait d'appeler des pages sous le format:

http://www.monsite.co.uk/index.php?lang=uk&p=ma_page et ensuite de faire une réécriture pour afficher http://www.monsite.co.uk/ma_page (la variable langue est alors stockée en session), mais je ne vois pas bien comment faire... Vap tu aurais une idée ??

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Ven Mai 16, 2008 14:51

Peux tu mettre toutes tes règles (dans l'ordre ou elles sont dans le .htaccess) et aussi toutes les réécritures que tu veux?

EN effet, ssi tu me les distille une a une on va mettre longtemps :wink:

Mais je crois savoir ce que tu veux, et ça me parait faisable. Mais je préfère que tu me dise ce que tu veux au lieu de devoir le deviner!

jeanvilou
Nouveau WRInaute
 
Messages: 23
Inscription: Mar Avr 22, 2008 9:51

Message le Ven Mai 16, 2008 15:18

oui excuse moi, désolé, c'est vrai j'aurais dit tout mettre de puis le début...

alors voila j'ai un site internet, qui doit etre visible sur 3 noms de domaines, avec une langue différente par nom de domaine.
Toutes les pages sont contenues dans une base de données. Une base par langue.

Quand on tape www.monsite.es ou www.monsite.co.uk on doit arriver sur www.monsite.fr/?l=uk ou www.monsite.fr/?l=uk
L'url rewriting doit permettre, si l'on tape un nom de domaine différent de .fr de réécrire le .fr en .co.uk ou .es selon l'url tapée.

Ensuite la va variable $_GET['l'] est reprise dans uen variable de session, et c'est sur cette variable qu'on sélectionne la base de données où il faut extraire les textes.

On peut par exemple avoir une page de type www.monsite.es/pages.php?p=ma_page

mais je souhaite que cette page soit appellée de cette manière: www.monsite.es/ma_page et qui correspond en fait à www.monsite.fr/pages.php?p=ma_page AVEC la variable de session langue définie come ES pour l'espagne.

Voici mon .htaccess:

RewriteCond %{HTTP_HOST} ^www\.anyword\.es$
RewriteRule (.*) /test2/?l=es [QSA]

RewriteRule ^([a-z0-9_-]+)$ pages.php?p=$1 [L]

... et c'est tout !


pour le moment tout fonctionne sauf la réécriture des pages.php?p=ma_page

pour faire plus simple j'ai essayé de supprimer la page "pages.php" pour ne travailler qu'avec le fichier index, qui selon la variable $p affiche soit le contenu de la home page, soit le contenu de la page indiqué par la variable. j'ai testé avec www.monsite.es/?p=ma_page (qui correspondont en fait à www.monsite.fr?index.php?l=es&p=ma_page) et j'obtiens bien le contenu souhaité mais si je fais www.monsite.es/ma_page je reste sur la page index.

voila où j'en suis... c'est pas évident en fait...

Vap
WRInaute accro
WRInaute accro
 
Messages: 1090
Inscription: Dim Juin 17, 2007 20:12

Message le Ven Mai 16, 2008 20:41

C'est ce que je pensais, merci d'avoir confirmé.

Essaie d'intervertir les règles :

Code: Tout sélectionner
RewriteRule ^([a-z0-9_-]+)$ pages.php?p=$1 [L]

RewriteCond %{HTTP_HOST} ^www\.anyword\.es$
RewriteRule (.*) /test2/?l=es [QSA]


Ca devrait mieux marcher.

Mais si quelqu'un suit un lien vers une page autre que l'index, sans passer par l'index, la variable de session sur la langue ne sera pas renseignée. Que feras tu dans ce cas?

il me semble plus sûr de continuer a passer la langue en parametre:

Code: Tout sélectionner
RewriteCond %{HTTP_HOST} ^www\.anyword\.fr$
RewriteRule ^([a-z0-9_-]+)$ pages.php?l=fr&p=$1 [L]

RewriteCond %{HTTP_HOST} ^www\.anyword\.es$
RewriteRule ^([a-z0-9_-]+)$ pages.php?l=es&p=$1 [L]

RewriteCond %{HTTP_HOST} ^www\.anyword\.fr$
RewriteRule (.*) /test2/?l=fr [L]

RewriteCond %{HTTP_HOST} ^www\.anyword\.es$
RewriteRule (.*) /test2/?l=es [L]

url rewriting dans nom de domaine

Formation recommandée sur ce thème :

Formation Netlinking (liens et référencement) : apprenez ce qu'est réellement un bon lien pour le référencement et surtout comment en obtenir. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Apps Edition Premium



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités