[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux-team] ~ sous Apache



> Comment puis je ne faire que les users puissent accéder à leur page web
> sans devoir mettre le ~. Par exemple http://www.site.com/user au lieu de
> http://www.site.com/~user.

Il n'y a pas de méthode facile, car Apache doit bien pouvoir faire la
différence entre un répertoire qui se trouve en dessous de sa DocumentRoot
(/usr/local/httpd/htdocs/) et un nom de user.
Par contre, tu pourrais plutôt faire:
http://www.site.com/u/nom
ou bien
http://users.site.com/nom

Là, il te suffit (pour la 2ème possibilité, il te faut quand même aussi
ajouter un virtual host et une entrée DNS) d'écrire une "rewrite rule"
(pour autant que tu aies activé le module mod_rewrite, mais par défaut
il est linké dans Apache).
Cette rule transformerait /u/nom en ~nom ou encore, dans le 2ème cas,
nom -> ~nom mais évidemment, tu écris cette règle pour le virtual
host users.site.com et pas pour www.site.com

C'est peut-être un peu compliqué comme explications, mais comprends bien
que ce n'est pas si simple...
Si tu disais que http://www.site.com/user va directement dans le répertoire
public_html en dessous de la home de "user", comment tu fais pour afficher
le répertoire /usr/local/httpd/htdocs/blah ?
http://www.site.com/blah -> Apache essaierait d'aller vers ~blah/public_html
ce qui ne marcherait pas...

Je trouve que la 2ème solution est très élégante:
1) ajouter "users.site.com" dans le DNS
2) ajouter un virtual host "users.site.com" dans Apache
3) dans la configuration de ce virtual host, écrire la rewrite rule suivante:

RewriteEngine	on
RewriteBase		/
RewriteRule		^([^~].*)/(.*)$	~$1/$2

et voilou...

Pour le virtual host, tu édites ton fichier /etc/httpd/httpd.conf :
Listen 3000
Listen adresse_ip_du_serveur:80

<VirtualHost host.some_domain.com>
DocumentRoot /usr/local/httpd/htdocs
ServerName users.site.com
ErrorLog /var/log/httpd.users.error_log
TransferLog /var/log/httpd.users.access_log

# et puis la rewrite-rule ici:
RewriteEngine	on
RewriteBase		/
RewriteRule		^([^~].*)/(.*)$	~$1/$2
</VirtualHost>

  -o)  Pascal Bleser        | UNIX *is* user friendly.
  /\\  C++/UNIX Development | It's just selective about
 _\_v  ATOS Payment Systems | who its friends are...
pbleser@atos-group.com---------------------------------
---------
This message was sent by Majordomo 1.94.3. Please repport problems to
manu@rtfm.be. If you want to be deleted from the list, send a mail to
majordomo@rtfm.be with "unsubscribe linux-team" in the body.