2 stounemaster Feb 13, 2006 11:50

Une solution simple à votre problème: mod_rewrite.
Il faut pour cela avoir un site sous apache, avec mod_rewrite activé, et ce petit fichier .htaccess à la racine de b2evolution:
RewriteEngine On
#Pour ne pas modifier les accès à la racine
#faire pareil pour tous les autres sous-domaines qui ne doivent pas etre redirigés
RewriteCond %{HTTP_HOST} ^monsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.monsite.com$
RewriteRule ^(.*)$ - [L]
#Un autre sous-domaine est demandé: c'est un blog
RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9]+).monsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.([a-zA-Z0-9]+).monsite.com$
RewriteRule ^(.*)$ http://www.monsite.com/blogs/%1 [L]
Dans cet exemple B2evolution est installé dans /blogs/ et chaque utilisateur possède un blog auquel il accède via un fichier stub qui porte le nom de son pseudo.
Les sous-domaines doivent tous pointer vers le domaine principal pour que ça fonctionne de manière automatique, sinon il faut créer un sous-domaine à chaque fois.
Pour plus d'informations sur l'installation de ce genre de plate-forme voir ce topic: http://forums.b2evolution.net/viewtopic.php?t=7124
Voila de ma part
http://www.monsite.com/login
marche parfaitement
par contre : http://login.monsite.com/
ne marche pas !
Pourrais tu être un tout petit peu plus précis stp?
Pourrais-tu préciser notamment:
désolé pour le manque de détails
pour ce qui est de la redirection pour http://www.monsite.com/login
marche parfaitement:
le problème réside pour http://login.monsite.com
1- quand je tape http://login.monsite.com
l'erreur est "Impossible d'afficher la page" (je pense que c'est l'erreur 404)
2- le chemin d'installation ... est la racine.
3- pour l'installation:
J'ai suivi les étapes cités ici:http://forums.b2evolution.net/viewtopic.php?t=7124
et pour la redirection j'ai utilisé le hack que tu a donné :)
merci encore une fois
Mmmhhh pour ton installation à la racine il te faut combiner les deux fichiers htaccess en un seul et si possible dans le bon ordre ^^
Ca devrait donner ça (j'ai pas pu tester mais il n'y a pas de raison que ça ne fonctionne pas)
RewriteEngine On
#attention à bien changer monsie.com par l'adresse réelle !
#Pour ne pas modifier les accès à la racine
#faire pareil pour tous les autres sous-domaines qui ne doivent pas etre redirigés
RewriteCond %{HTTP_HOST} ^monsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.monsite.com$
RewriteRule ^(.*)$ - [L]
#Un autre sous-domaine est demandé: c'est un blog
RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9]+).monsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.([a-zA-Z0-9]+).monsite.com$
RewriteRule ^(.*)$ http://www.monsite.com/%1 [L]
#pour prendre en charge http://monsite.com/login
RewriteCond %{REQUEST_FILENAME}.php -s
RewriteCond %{QUERY_STRING} ^$
RewriteRule ([^-]+) $1.php
Voilà pour le code, concrètement apache va voir si l'adresse tapée est de type monsite.com ou www.monsite.com, et dans ce cas il ne change rien, par contre si on a quelque chose de la forme login.monsite.com ou www.login.monsite.com ce sera modifié en www.monsite.com/login.
Enfin il va chercher si le dossier demandé n'existe pas avec l'extension .php et dans ce cas rediriger monsite.com/login vers monsite.com/login.php
Attention: pour fonctionner ce script a besoin d'utiliser un wildcard DNS (tous les sous-domaines redirigés vers le domaine principal), pour en être sûr essaie de supprimer le fichier htaccess puis de taper truc.monsite.com: tu devrais voir ton site.
Après avoir installé le fichier .htaccess regarde l'url affichée quand tu demandes login.monsite.com: ça doit afficher www.monsite.com/login ...
Une derniere précision: login doit etre composé uniquement de lettres et de chiffres pour que ce script fonctionne.
Bonne journée :!:
Merci pour la réponse.
Je pense que le probleme reside dans le "wildcard DNS" du moment ou cela ne marche pas !
cad quand je met 123456.monsite.com il donne .. erreur 404.
8|
Moi je tombe carément sur la page de l'hébergeur avec ceci, faut-t-il que dans le vhost je mettte en serveralias le *.galiblog.ath.cx pour que ceci fonctionne ?
Tout dépend de la configuration d'Apache sur le serveur de ton hébergeur, mais vérifie bien ton .htaccess d'abord, il devrait ressembler à ça:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^galiblog.ath.cx$ [OR]
RewriteCond %{HTTP_HOST} ^www.galiblog.ath.cx$
RewriteRule ^(.*)$ - [L]
#Un autre sous-domaine est demandé: c'est un blog
RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9]+).galiblog.ath.cx$ [OR]
RewriteCond %{HTTP_HOST} ^www.([a-zA-Z0-9]+).galiblog.ath.cx$
RewriteRule ^(.*)$ http://www.galiblog.ath.cx/%1 [L]
#pour prendre en charge http://monsite.com/login
RewriteCond %{REQUEST_FILENAME}.php -s
RewriteCond %{QUERY_STRING} ^$
RewriteRule ([^-]+) $1.php
Si ça ne marche toujours pas essaie d'utiliser la directive ServerAlias
Bonjour,
J'essaie de faire la même chose, mais j'arrive toujours sur une page d'erreur, aideàlanavigation de mon prestataire internet.
Pour l'instant, j'arrive seulement à faire une url du type :
http://mondomaine.net/login qui pointe sur http://mondomaine.net/monrep/login/
Mais je voudrais mettre faire http://login.mondomaine.net/
Avec la solution de madz, ça ne marche pas (j'arrive toujours sur une page d'erreur, aideàlanavigation de mon prestataire internet).
Merci pour votre aide.
Mon fichier .htaccess a ça pour l'instant (et ça marche !)
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(/(.*))?$ /free/$1/index.php/$3
ca m'interesse a moi aussi.
ansi que pouvoir choisir les deux formes:
http://login.monsite.com et http://www.monsite.com/login
MERCI :)