url rewriting dans nom de domaine
18 messages • Page 1 sur 2 • 1, 2
Consultez la formation sur les stratégies de liens de WebRankInfo / Ranking Metrics
url rewriting dans nom de domaine
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 !
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

- Messages: 1874
- Inscription: Dim Déc 17, 2006 21:08
tu peux ajouter une condition pour limiter une règle de réécriture avec l'instruction RewriteCond
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]
RewriteCond %{HTTP_HOST} www\.ndd_a_rediriger_sans_extension\.extension$
RewriteRule ^(.*)|$ http://www.ndd_du_site_avec_extension/$1 [R=301,L]
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:
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
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
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 !
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 !
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?
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 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
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)
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)
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 ??
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 ??
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
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!
EN effet, ssi tu me les distille une a une on va mettre longtemps
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!
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...
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...
C'est ce que je pensais, merci d'avoir confirmé.
Essaie d'intervertir les règles :
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:
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]
18 messages • Page 1 sur 2 • 1, 2
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 :
- l'URL Rewriting expliqué aux débutants
- Comment éviter de se faire voler son nom de domaine...
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- Tutoriel URL Rewriting
- Optimiser le référencement d'un forum phpBB : réécriture d'URL
- 3ème partie de l'article .htaccess : les réécritures conditionnelles
- WebRankInfo lance un forum sur les noms de domaine
- Ayez une bonne politique de format d'URL : conseil n°6 en référencement
- Noms de domaine : Google se lance dans le marché
- Comment éviter les contenus dupliqués (avec/sans le www)
- URL rewriting et nom de domaine
- URL rewriting appliqué au nom de domaine ?
- URL rewriting et changement de nom de domaine
- Rewriting de nom de domaine avec variable
- Url rewriting et nom de domaine redirigé
- Conséquences Refonte, Nom de domaine et URL Rewriting
- changement de nom de domaine: redirection par URL Rewriting
- rewriting d'un nom de domaine vers un autre avec même ss-dom
- [Résolu] Url Rewriting : index.php?id=nom devient /nom/
- Souci juridique sur un nom de domaine (nom de commune)
- trouver un nom de domaine .fr pour un nom d'entreprise long
- Nom français accentué et nom de domaine sans accent
- Nom de domaine contenant le nom d'une ville
- Importance du nom de domaine > structure de site nom de p
- Nom de domaine et site perso du même nom
Consultez la description détaillée des produits ou services de Google suivants : Google Apps Edition Premium
- Trouver les sous-domaines
Cet outil vous permet de trouver la liste des sous-domaines (indexés) d'un site.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

le forum