Guest pirw3t Posté 5 Février 2004 Posté 5 Février 2004 Bonsoir à tous, Ce message est destinés aux ames charitables En effet je suis une quiche en ce qui concerne toute programmation, et j'ai besoin d'un coup de pouce pour la réalisation de mon htaccess. l'example : ( en essayant d'être le plus clair possible ) Le site principal : www.site.com - http://site.com Si on accéde au site avec : http://xxx.site.com Ca redirige sur : http://site.com/id.php?id=xxx Merci pour votre aide, je suis moi même designer et ravi de vous rendre la pareille si besoin.
Dan Posté 6 Février 2004 Posté 6 Février 2004 Bonjour pirw3t, J'avais donné la solution à ce type de problème il y a quelque temps sur le Hub: http://www.webmaster-hub.com/index.php?sho...t=15entry8310 Il te suffit d'adapter l'adresse IP et les paramètres propres à ton domaine, comme l'email de contact, le DocumentRoot, les alias, les fichiers logs etc... Ces modifications sont à faire dans le fichier httpd.conf (configuration d'Apache) et non dans le .htaccess. En effet, le fichier .htaccess n'est accédé qu'une fois le nom de domaine résolu, il est donc trop tartd pour en changer, si ce n'est en faisant une redirection externe qui dans ce cas-ci ne fonctionnera pas. Il faut définir un alias "catch-all", ce qui se fait facilement au niveau de la déclaration de "virtual host" (le *.domaine.net dans l'exemple). Comme il n'y a qu'un seul DocumentRoot pour tous les sous-domaines, il faudra que la redirection se fasse à ce niveau. Quelques lignes de code dans le fichier index.php suffiront à traiter cela. En effet, une des variables d'environnement passée par php est justement le nom du Host ($_SERVER['HTTP_HOST']) Pour extraire le sous domaine, il est facile d'utilise la fonction ereg_replace() en masquant le nom de domaine, par exemple pour ton domaine: $sous_domaine = ereg_replace(".france-blog.com","",$_SERVER[HTTP_HOST]); Et voilà, une fois que tu as la variable $sous_domaine, tu en fais ce que tu veux, y compris la passer en argument à d'autres scripts que tu appelleras avec la fonction header("Location: nom_du_script") Dan
Guest pirw3t Posté 7 Février 2004 Posté 7 Février 2004 (modifié) Merci Dan, pour le script php que tu ma réalisé, je le poste ici pour qu'il puisse servir à tous le monde. <?php$sous_domaine = ereg_replace(".domaine.com","",$_SERVER['HTTP_HOST']);if (!strcmp('domaine.com',$_SERVER['HTTP_HOST'])||$sous_domaine=="")header("Location: web/");else{if (!strcmp($sous_domaine, "www"))header("Location: web/");else {$sous_domaine = ereg_replace("www\.","",$sous_domaine );header("Location: http://domaine.com/?id=".$sous_domaine);}}?> J'ai encore une petite question, Comment redirigé : www.domaine.com/xxx En : http://xxx.domaine.com Merci beaucoup, je précise que xxx peut contenir des chiffres, des lettres ou les deux. Modifié 7 Février 2004 par pirw3t
Dan Posté 7 Février 2004 Posté 7 Février 2004 Comment rediriger : www.domaine.com/xxxEn : http://xxx.domaine.com C'est simple mais il faut passer par une redirection externe, vu que tu changes de sous-domaine .... (flag [R]) RewriteCond %{ HTTP_HOST} www.domaine.com RewriteRule ([a-z0-9]+)$ http://$1.domaine.com [NC,R,L] Le NC veut dire indépendamment de la casse donc a-z couvre majuscules et minuscules Le R force une redirection externe... si tu veux une redirection permanente pour que les moteurs mettent leur index a jour, utilises R=301 Le L veut dire Last, dernière règle si valide. Dan PS: j'ai mis un RewriteCond pour éviter les bouclages en redirection, vu que c'est pour compléter la redirection faite par le code php cité au dessus
kilou Posté 19 Février 2004 Posté 19 Février 2004 Bonjour, Moi je voudrais faire pointer des sous domaines de facon automatique. Je m'explique j'ai deux nom de domaine qui pointe sur mon serveur ( maison ). www.site.com et www.site.net Je veux utiliser .net sur mon site principal ( ca pas de problème ) mais ce que je n'arrive pas à faire c'est ca : J'ai pour l'instant un VIRTUALHOST pour chaque sous domaine mais ca devient de plus en plus lourd et pas tres pratique. je suis sur windows 2000 serveur avec apache 1.3.27 les membres sont dans : c:\home\www\user\membre1 c:\home\www\user\membre2 c:\home\www\user\membre3 c:\home\www\user\membre4 c:\home\www\user\membre5 Je voudrais que lorsque l'ont tape membre1.site.com membre2.site.com Il arrive directement dans leur répertoire. Mais sans créer de VIRTUALHOST à chaque fois . Si quelqu'un aurais l'info ca serai super
kilou Posté 20 Février 2004 Posté 20 Février 2004 c'est bon j'ai trouvé <VirtualHost 193.251.x.x> ServerAdmin webmaster_AT_site.com DocumentRoot c:\home\www\user ServerName www.site.com ServerAlias site.com *.site.com VirtualDocumentRoot /home/www/user/%-3.0 UseCanonicalName off </virtualHost> à mettre dans httpd.conf
Francois0607 Posté 13 Janvier 2005 Posté 13 Janvier 2005 Voilà je fait remonter ce vieux post à la surface car je me bat actuellement sur le même problème. j'ai bien le mod_vhost_alias installé dans apache , je place dans mon httpd.conf <VirtualHost xxx.xxx.x.x> ServerAdmin webmaster_AT_domaine.tld DocumentRoot /home/domaine/www ServerName www.domaine.tld ServerAlias domaine.tld *.domaine.tld VirtualDocumentRoot /home/www/%2.1 UseCanonicalName off </virtualHost> alors si je me trompe pas si je tape test.domaine.tld ou nimportequoi.domaine.tld je dois en fait etre dans /home/www/d/ Alors il doit y avoir une astuce que j'ai passé.. y a -til quelque chose a déclaré dans bind dns pour que tous les sous domaine possible soit existant? Il y a un delai avant le fonctionnement? j'ai lu pas mal de doc là dessus et je ne vois vraiment rien de plus a faire pour y arriver...
Dan Posté 13 Janvier 2005 Posté 13 Janvier 2005 Salut François0607, Il faut bien sûr créer un dernier champ A dans la config de la zone. Ce champ est un nom de sous-domaine pour lequel tu mettras le caractère * tout simplement. Exemple (c'est tout bête): * IN A 123.123.123.123 avec la bonne IP, bien sûr Une fois fait, tu redémarres bind/named et ça roule Dan
Francois0607 Posté 13 Janvier 2005 Posté 13 Janvier 2005 Réponse rapide clair et précise, je n'ai plus qu'a dire un grand merciiiiiii
KingLouis Posté 26 Février 2005 Posté 26 Février 2005 (modifié) Bonjour , Y a-t-il un moyen quelconque de faire cela avec un serveur mutualisé ? Merci Modifié 26 Février 2005 par KingLouis
Dan Posté 1 Mars 2005 Posté 1 Mars 2005 Bonjour , Y a-t-il un moyen quelconque de faire cela avec un serveur mutualisé ? Merci Non, malheureusement. Il faut pouvoir configurer Apache et named, ce que tu ne peux pas faire sur un hébergement mutualisé Dan
KingLouis Posté 19 Mars 2005 Posté 19 Mars 2005 Je me répond à moi même : OUI Je ne pense pas bien sur que ce soit exactement la même chose mais l'idée est : on redirige truc.site.com ( truc est variable ) vers la racine du site le fichier index.php a la racine recupere l'adresse truc.site.com ( http host ) , la découpe pour obtenir truc , et apres on en fait ce qu'on veut . Moi ça me sert bien pour mon systeme de blog : http://www.blog4ever.com Par exemple http://test.blog4ever.com/ envoie " test.blog4ever.com " que je découpe sur l'index , pour ensuite interpreter en mysql ( je vais chercher l'idée du blog ... ) . En esperant que ça aidera un peu KL
Dan Posté 19 Mars 2005 Posté 19 Mars 2005 KingLouis, Le "truc" est qu'il faut arriver au serveur truc.site.com, et que sans avoir déclaré le sous-domaine, on tombera sur un "server not found"... Donc soit tu crées le sous-domaine manu militari dans l'interface de l'hébergeur, soit ce n'est pas possible sur un mutualisé parce que tu ne pourras pas créer un sous-domaine * Dan
KingLouis Posté 19 Mars 2005 Posté 19 Mars 2005 Mon site est sur un serveur mutualisé et ça marche . En fait j'ai configuré les DNS d'une certaine manière ( enfin c'est le support technique qui l'a fait pour moi ) . Je ne créé pas les sous domaines manuellement .
Rom1 Posté 24 Mars 2005 Posté 24 Mars 2005 Dan tu t'avance un peu trop vite Il y a, chez certains hébergeurs mutualisés, possibilité de créer des wildcard subdomains (*) Et ça commence à se répandre
XoSt Posté 27 Juin 2005 Posté 27 Juin 2005 Bonjour, J'ai un petit soucis du genre malheuresement... J'aimerais rediriger index.php?id=1xc sur 1xc.domaine.com Comment configurer apache et le htaccess ? Merci
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant