Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2011, 18h08   #1
Membre régulier
 
Inscription : février 2009
Messages : 197
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 197
Points : 71
Points : 71
Par défaut Sous domaine vers url

Bonjour,

Savez-vous comment rediriger un sous domaine vers une url,

Code :
RewriteRule ^index.php?mn=42&lang=fr  http://sousdomaine.domaine.com/$1 [L]
Merci de votre aide.
dominos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 18h55   #2
Membre du Club
 
Inscription : juin 2006
Messages : 228
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 228
Points : 51
Points : 51
j'ai trouvé ça sur ce lien

http://www.urlrewriting.fr/scripts-R...ion-Apache.htm
serna est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 03/02/2011, 22h45   #3
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 278
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 278
Points : 8 565
Points : 8 565
On ne le répètera jamais assez : RTFM :
Citation:
Dans la première règle de réécriture, l'expression est comparée au chemin de l'URL de la requête
Et encore :
Citation:
Qu'est-ce qui est comparé ?

Le Modèle est d'abord comparé à la partie de l'URL après le nom d'hôte et le port, et avant la chaîne de requête [query string]. Si vous souhaitez faire une comparaison sur le nom d'hôte, le port, ou la chaîne de requête [query string], utilisez une directive RewriteCond comportant les variables %{HTTP_HOST}, %{SERVER_PORT}, ou %{QUERY_STRING}.
En conclusion, on fait tout comme c'est marqué dans le manuel : on utilise RewriteCond pour vérifier la query string :
Code :
1
2
RewriteCond %{QUERY_STRING} ^mn=42&lang=fr$
RewriteRule ^index.php  http://sousdomaine.domaine.com/$0 [L]
Et si on corrige le $1 qui ne fait référence à rien car pas de bloc entre parenthèses dans le premier membre de RewriteRule (on utilise donc $0), ça devrait marcher tout seul.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 09h05   #4
Membre régulier
 
Inscription : février 2009
Messages : 197
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 197
Points : 71
Points : 71
Merci mais après test ça ne fonctionne toujour pas,
j'ai aussi essayé

Citation:
RewriteRule ^http://sousdomaine.domaine.com/$ index.php?mn=1&lang=fr [L]
amis ça n'a pas fonctionné non plus
dominos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 10h42   #5
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 278
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 278
Points : 8 565
Points : 8 565
Tu veux faire quoi, exactement ? Tu donnes une règle dans ton premier message et maintenant tu en donnes une autre qui est à peu de choses prêt l'opposé

Nouveau retour sur la doc :
Citation:
Dans la première règle de réécriture, l'expression est comparée au chemin de l'URL de la requête
chemin de l'URL de la requête = ce qui suit http://site.com, par exemple /forums/d1033489/webmasters-developpement-web/serveurs-apache-iis/apache/sous-domaine-vers-url/ pour cette discussion. On n'y trouve jamais http://... donc ton premier argument de RewriteRule ne peut jamais être vérifié. Il faut donc retirer ce http://... de ton filtre. Et comme en plus, tu es dans un .htaccess, y a une feinte, il faut aussi retirer le premier /. Et donc, dans un .htaccess, pour vérifier si on demande juste http://site.com/ sans rien derrière, le filtre est ^$. Ce qui donne dans ton cas :
Code :
RewriteRule ^$ index.php?mn=1&lang=fr [L]
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 12h33   #6
Membre régulier
 
Inscription : février 2009
Messages : 197
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 197
Points : 71
Points : 71
Citation:
Ce qui donne dans ton cas :
Code :
RewriteRule ^$ index.php?mn=1&lang=fr [L]
Bonjour, en fait j'ai un sous domaine => http://sousdomaine.domaine.com/
ce sous domaine pointe sur aucun dossier, donc c'est équivalent à => http://www.domaine.com/

L'intêret de cela, est de parvenir à rediriger ce sous domaine vers l'url suivante => index.php?mn=100&lang=fr (Url complète http://www.domaine.com/index.php?mn=100&lang=fr)
dominos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 16h51   #7
Membre régulier
 
Inscription : février 2009
Messages : 197
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 197
Points : 71
Points : 71
Avec ce code ça fonctionne
Code :
1
2
RewriteCond %{HTTP_HOST} sousdomaine.domaine.com$
RewriteRule $ index.php?mn=100&lang=fr$ [L]
Le soucis c'est si je saisie quoi que ce soit dans la barre d'adresse, il accepte tout et ne prend pas en compte le reste
Code :
RewriteRule ^dossier/$ index.php?mn=101&lang=fr [L]
qui normalement devrait donner :
http://sousdomaine.domaine.com/dossier/
dominos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 22h25   #8
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 278
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 278
Points : 8 565
Points : 8 565
C'est logique : la règle
Code :
RewriteRule $ index.php?mn=100&lang=fr$ [L]
est ultra-générique est vaut pour toutes les URL, donc quoi que tu demandes sur sousdomaine.domaine.com, tu obtiens index.php?mn=100&lang=fr$ en résultat. Faut préciser un peu plus de filtre ou ajouter une condition.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 23h34   #9
Membre régulier
 
Inscription : février 2009
Messages : 197
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 197
Points : 71
Points : 71
Ok peux tu m'aider svp à mieux comprendre cela par un exemple pour obtenir à partir du sous domaine, je ne suis pas très calé en url rewriting
Citation:
RewriteRule ^dossier/$ index.php?mn=101&lang=fr [L]

merci d'avance pour ton aide
dominos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2011, 08h26   #10
Membre régulier
 
Inscription : février 2009
Messages : 197
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 197
Points : 71
Points : 71
ça fonctionne. En fait c'est tout bête, il ne faut rien ajouter au fichier .htaccess,

Exemple :
Code :
1
2
3
4
5
6
7
8
Options +FollowSymlinks

RewriteEngine on

RewriteBase  /

RewriteRule ^moto-auto-assurance/$ index.php?mn=1&lang=fr [L]
RewriteRule ^idem sur plusieurs ligne....
Tout cela fonctionne depuis http://domaine.com/

Dans le href="" qui pointe vers le sous-domaine on désigne le sous domaine,
comme ceci :
Code :
1
2
3
<?php $ssDomaine = ($_SERVER['SERVER_NAME']=="localhost")?"http://localhost/sousdomaine.domaine.com/":"http://sousdomaine.domaine.com/"; ?>
<a href="<?php echo $ssDomaine; ?>">....</a>
Lorsqu'on clique sur le lien on passe en sous domaine et comme il ne pointe vers aucun dossier, on retourne donc à l'accueil du site. Lorsqu'on clique à nouveau sur les divers liens on navigue de la même façon que si on était sur http://domaine.com, il ne reste plus qu'a ajouter la suite des liens dans le .htaccess en rapport avec le sousdomaine.

Code :
RewriteRule ^autresliens/$ index.php?mn=100&lang=fr [L]
Merci.
dominos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h05.


 
 
 
 
Partenaires

Hébergement Web