Redirection nouveau domaine htaccess

djew Messages postés 30 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 27 octobre 2010 - 26 oct. 2010 à 12:23
djew Messages postés 30 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 27 octobre 2010 - 27 oct. 2010 à 11:27
Bonjour !
Je vous expose mon problème corsé :

Chaque client de mon site possède son propre espace, il accède à ses rubriques par les url suivante :

CLIENT 1 :
monsite.com/index.php?compte=client1&page=rubrique1 (que j'ai transformé en monsite.com/client1/rubrique1.htm grace à mon htaccess)
monsite.com/index.php?compte=client1&page=rubrique2
monsite.com/index.php?compte=client1&page=rubrique3&souspage=sousrubrique1 (que j'ai transformé en monsite.com/client1/rubrique3,sousrubrique1.htm grace à mon htaccess)
monsite.com/index.php?compte=client1&page=rubrique3&souspage=sousrubrique2 (que j'ai transformé en monsite.com/client1/rubrique3,sousrubrique2.htm grace à mon htaccess)
...

CLIENT 2 :
monsite.com/index.php?compte=client2&page=rubrique1
monsite.com/index.php?compte=client2&page=rubrique2
monsite.com/index.php?compte=client2&page=rubrique3
...

J'aimerais, grace à mon fichier htaccess et aux expressions régulières attribuer un nom de domaine à chaque client :

CLIENT 1 :
nvodomaine.com/rubrique1.php (qui donne accès à monsite.com/index.php?compte=client1&page=rubrique1)
nvodomaine.com/rubrique2.php (qui donne accès à monsite.com/index.php?compte=client1&page=rubrique2)
nvodomaine.com/rubrique3,sousrubrique2.php (qui donne accès à monsite.com/index.php?compte=client1&page=rubrique3&souspage=sousrubrique2)
...

C'est là ou je bloque.
Sur l'interface de mon hébergement, je peux attribuer un sous dossier de mon espace web à un domaine, pas de soucis (il prendra comme page par défaut l'index.php du sous dossier comme page d'accueil), mais ce que j'aimerais c'est qu'il prenne par défaut l'index.php avec mes variables GET.
Il faudrait en fait que je fasse pour le client1 qqe chose du style :

Redirect permanent /index.php?compte=client1&page=([0-9a-zA-Z_]+) http://www.nvodomaine.com/$1.htm
Redirect permanent /index.php?compte=client1&page=([0-9a-zA-Z_]+)&souspage=([0-9a-zA-Z_]+) http://www.nvodomaine.com/$1,$2.htm

Je m'y perds, c'est corsé !
Merci pour votre aide

6 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
27 oct. 2010 à 00:02
Salut

RewriteCond is your friend.

Mais à ne pas mettre dans le .htaccess, plutôt dans la configuration de chaque domaine.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
djew Messages postés 30 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 27 octobre 2010
27 oct. 2010 à 10:09
Je ne te suis pas trop là, peux-tu m'orienter vers un tuto ou m'expliquer s'il te plait ?
Merci.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
27 oct. 2010 à 10:25
Ben tu prends le problème à l'envers. Tu n'es pas le seul, il y a eu une question similaire il y a quelques jours à peine.
Tu ne rediriges pas vers le domaine du client, mais le domaine du client doit correspondre à une URL avec des variables GET.
Autrement dit, tu ne dois pas rediriger
/index.php?compte=client1&page=([0-9a-zA-Z_]+)&souspage=([0-9a-zA-Z_]+)
vers
http://www.nvodomaine.com/$1,$2.htm

Mais réécrire
http://www.nvodomaine.com/$1,$2.htm
comme étant l'URL
/index.php?compte=client1&page=([0-9a-zA-Z_]+)&souspage=([0-9a-zA-Z_]+)

En fait, y'a même pas besoin de RewriteCond, au temps pour moi.
Dans le fichier de configuration de chaque domaine, il suffit de :

RewriteRule http://www.nvodomaine.com/([^,]+),([\.]+)\.htm$ /index.php?compte=CLIENT&page=$1&souspage=$2 [L]

La question qu'il faut se poser est la suivante : quelle est l'adresse que je souhaite avoir dans le navigateur ? => c'est le premier argument de RewriteRule
La deuxième question est : à quoi est-ce que je souhaite qu'elle corresponde pour que les variables puissent être comprises par le serveur ? => c'est le deuxième arugment de RewriteRule

Il faut bien distinguer le domaine, qui n'est qu'une adresse dans une barre du navigateur, et les fichiers physiques sur le disque dur du serveur. C'est pour cette raison qu'il faut mettre cette règle de réécriture dans le fichier de configuration de CHAQUE Vhost Apache, c'est à dire dans le fichier de configuration de CHAQUE domaine que tu héberges : le .htaccess est commun à tous les domaines, puisque c'est un fichier physique. Les règles de réécriture dans les fichiers de conf des vhosts sont, elles, propres à chaque domaine : inutile alors de vérifier le nom du domaine ou quoi, tu le connais forcément, puisque c'est le même que la directive ServerName ou ServerAlias.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
djew Messages postés 30 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 27 octobre 2010
27 oct. 2010 à 10:46
Merci pour cette explication très claire et très complète.
Cependant, je possède un espace web 1&1 mutualisé.
Donc est-ce que je peux modifier le fichier de configuration de chaque Vhost Apache ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
27 oct. 2010 à 10:51
Je ne sais pas précisément... Il me semle me souvenir que oui, mais j'ai oublié à quoi ressemble l'interface.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
djew Messages postés 30 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 27 octobre 2010
27 oct. 2010 à 11:27
Je ne trouve pas dans l'interface 1&1.
Je ne pense pas que l'option soit dispo dans mon pack perso initial.

Encore merci pour tes éclairages
0
Rejoignez-nous