|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
jeanvilou Nouveau WRInaute
Inscrit le: 22 Avr 2008 Messages: 16
|
Posté le : Mar Mai 13, 2008 17:50 Sujet du message: 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 ! |
|
| |
|
 |
webmasterlamogere WRInaute accro

Inscrit le: 17 Déc 2006 Messages: 1439 Localisation: urlrewriting.fr
|
Posté le : Mar Mai 13, 2008 17:58 Sujet du message: url rewriting dans nom de domaine |
|
|
| tu peux ajouter une condition pour limiter une règle de réécriture avec l'instruction RewriteCond |
|
| |
|
 |
jeanvilou Nouveau WRInaute
Inscrit le: 22 Avr 2008 Messages: 16
|
Posté le : Mar Mai 13, 2008 18:02 Sujet du message: url rewriting dans nom de domaine |
|
|
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 passionné

Inscrit le: 17 Juin 2007 Messages: 851 Localisation: Carry-le-Rouet (13)
|
Posté le : Mar Mai 13, 2008 18:41 Sujet du message: url rewriting dans nom de domaine |
|
|
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: |
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
Inscrit le: 22 Avr 2008 Messages: 16
|
Posté le : Mer Mai 14, 2008 11:48 Sujet du message: url rewriting dans nom de domaine |
|
|
| ok, merci, je vais tester |
|
| |
|
 |
jeanvilou Nouveau WRInaute
Inscrit le: 22 Avr 2008 Messages: 16
|
|
| |
|
 |
Vap WRInaute passionné

Inscrit le: 17 Juin 2007 Messages: 851 Localisation: Carry-le-Rouet (13)
|
Posté le : Mer Mai 14, 2008 19:25 Sujet du message: url rewriting dans nom de domaine |
|
|
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
Inscrit le: 22 Avr 2008 Messages: 16
|
Posté le : Jeu Mai 15, 2008 11:40 Sujet du message: url rewriting dans nom de domaine |
|
|
| 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
Inscrit le: 22 Avr 2008 Messages: 16
|
Posté le : Jeu Mai 15, 2008 14:54 Sujet du message: url rewriting dans nom de domaine |
|
|
| 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 passionné

Inscrit le: 17 Juin 2007 Messages: 851 Localisation: Carry-le-Rouet (13)
|
Posté le : Ven Mai 16, 2008 9:00 Sujet du message: url rewriting dans nom de domaine |
|
|
| 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: |
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
Inscrit le: 22 Avr 2008 Messages: 16
|
|
| |
|
 |
jeanvilou Nouveau WRInaute
Inscrit le: 22 Avr 2008 Messages: 16
|
Posté le : Ven Mai 16, 2008 12:45 Sujet du message: url rewriting dans nom de domaine |
|
|
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 passionné

Inscrit le: 17 Juin 2007 Messages: 851 Localisation: Carry-le-Rouet (13)
|
Posté le : Ven Mai 16, 2008 15:51 Sujet du message: url rewriting dans nom de domaine |
|
|
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! |
|
| |
|
 |
jeanvilou Nouveau WRInaute
Inscrit le: 22 Avr 2008 Messages: 16
|
Posté le : Ven Mai 16, 2008 16:18 Sujet du message: url rewriting dans nom de domaine |
|
|
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 passionné

Inscrit le: 17 Juin 2007 Messages: 851 Localisation: Carry-le-Rouet (13)
|
Posté le : Ven Mai 16, 2008 21:41 Sujet du message: url rewriting dans nom de domaine |
|
|
C'est ce que je pensais, merci d'avoir confirmé.
Essaie d'intervertir les règles :
| Code: |
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: |
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]
|
|
|
| |
|
 |
| |
|
|