Bonjour,
Savez-vous comment rediriger un sous domaine vers une url,
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule ^index.php?mn=42&lang=fr http://sousdomaine.domaine.com/$1 [L]








Bonjour,
Savez-vous comment rediriger un sous domaine vers une url,
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule ^index.php?mn=42&lang=fr http://sousdomaine.domaine.com/$1 [L]
j'ai trouvé ça sur ce lien
http://www.urlrewriting.fr/scripts-R...ion-Apache.htm
On ne le répètera jamais assez : RTFM :
Et encore :Dans la première règle de réécriture, l'expression est comparée au chemin de l'URL de la requête
En conclusion, on fait tout comme c'est marqué dans le manuel : on utilise RewriteCond pour vérifier la query string :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}.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 RewriteCond %{QUERY_STRING} ^mn=42&lang=fr$ RewriteRule ^index.php http://sousdomaine.domaine.com/$0 [L]








Merci mais après test ça ne fonctionne toujour pas,
j'ai aussi essayé
amis ça n'a pas fonctionné non plusRewriteRule ^http://sousdomaine.domaine.com/$ index.php?mn=1&lang=fr [L]![]()
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 :
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 :Dans la première règle de réécriture, l'expression est comparée au chemin de l'URL de la requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule ^$ index.php?mn=1&lang=fr [L]








Bonjour, en fait j'ai un sous domaine => http://sousdomaine.domaine.com/Ce qui donne dans ton cas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule ^$ index.php?mn=1&lang=fr [L]
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)








Avec ce code ça fonctionne
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 RewriteCond %{HTTP_HOST} sousdomaine.domaine.com$ RewriteRule $ index.php?mn=100&lang=fr$ [L]
qui normalement devrait donner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule ^dossier/$ index.php?mn=101&lang=fr [L]
http://sousdomaine.domaine.com/dossier/
C'est logique : la règleest 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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule $ index.php?mn=100&lang=fr$ [L]








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
RewriteRule ^dossier/$ index.php?mn=101&lang=fr [L]
merci d'avance pour ton aide








ça fonctionne. En fait c'est tout bête, il ne faut rien ajouter au fichier .htaccess,
Exemple :
Tout cela fonctionne depuis http://domaine.com/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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....
Dans le href="" qui pointe vers le sous-domaine on désigne le sous domaine,
comme ceci :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <?php $ssDomaine = ($_SERVER['SERVER_NAME']=="localhost")?"http://localhost/sousdomaine.domaine.com/":"http://sousdomaine.domaine.com/"; ?> <a href="<?php echo $ssDomaine; ?>">....</a>
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule ^autresliens/$ index.php?mn=100&lang=fr [L]
Partager