htaccess de réécriture basée sur le nom d'hôte ou le nom de domaine

J'ai deux domaines différents (disons www.site1.com et www.site2.com) qui pointent vers le même serveur d'hébergement.

J'ai besoin des deux noms de domaine différents parce que je veux utiliser le premier pour l'italien, le contenu et la seconde pour l'anglais contenu. Le contenu est le même, sauf pour la langue, mais les domaines ont être différent.

Donc, je voudrais écrire une règle qui me permet de traduire à partir de:

  • www.site1.com à /?lang=it
  • www.site2.com à /?lang=en

J'ai l'habitude d'utiliser le même nom de domaine pour de nombreuses langues différentes réécriture de www.site.com/it/ à /?lang=it (bien sûr, un fond de réécriture - l'utilisateur ne voit pas toute autre URL).

J'aimerais atteindre le même à l'aide de différents domaines, mais je ne peux pas comprendre comment... j'ai travaillé pendant des heures et je ne peux pas obtenir ce que je veux!

Habituellement j'utilise ceci:

RewriteCond %{REQUEST_URI} /([a-z]{2})
RewriteRule ^([a-z]{2})[/]*$ /index.php?lang=$1 [NC,QSA]

Je ne peux pas obtenir un travail, d'utiliser les différents domaines:

RewriteCond %{HTTP_HOST} ^www.site1\.com [NC]
RewriteCond %{REQUEST_URI} !^/index.php?lang=it
RewriteRule ^(.*)$ /index.php?lang=it [NC,QSA]

RewriteCond %{HTTP_HOST} ^www.site2\.com [NC]
RewriteCond %{REQUEST_URI} !^/index.php?lang=en
RewriteRule ^(.*)$ /index.php?lang=en [NC,QSA]
double possible de .htaccess RewriteRule: deux domaines en utilisant le même serveur et le répertoire
Ce qui se passe avec cette configuration? Et si vous supprimez la seconde Condition (^/index.php?lang=it devrait jamais l'égaler, REQUEST_URI ne pas exposer les paramètres de la requête, vérifiez %{QUERY_STRING} au lieu de cela) ?
J'ai essayé beaucoup de beaucoup de différentes "versions" des règles dans le dernier bloc gris... j'ai toujours une erreur HTTP 500 ou juste un vide $_GET. Je veux dire, parmi les autres tentatives, avec ou sans la seconde condition "RewriteCond %{REQUEST_URI} !^/index.le php?lang=it".
Merci Laurent Cherone! Que l'on fonctionne comme un charme!
Il ne faut pas oublier le RewriteEngine on au-dessus des autres règles...;)

OriginalL'auteur tobia.zanarella | 2012-04-19