Versión 2.4 del Servidor HTTP Apache
Directorios web por usuario
En sistemas con múltiples usuarios, cada usuario puede tener un website
en su directorio home usando la directiva UserDir
. Los visitantes de una URL
http://example.com/~username/
recibirán el contenido del
directorio home del usuario "username
", en el subdirectorio
especificado por la directiva UserDir
.
Tenga en cuenta que, por defecto, el acceso a estos directorios
NO está activado. Puede permitir acceso cuando usa
UserDir
quitando el comentario de la línea:
#Include conf/extra/httpd-userdir.conf
En el fichero por defecto de configuración conf/httpd.conf
,
y adaptando el fichero httpd-userdir.conf
según sea necesario,
o incluyendo las directivas apropiadas en un bloque
<Directory>
dentro del fichero
principal de configuración.
Directorios web por usuario
Módulos Relacionados | Directivas Relacionadas |
---|---|
Configurando la ruta del fichero con UserDir
La directiva UserDir
especifica un directorio del que cargar contenido por usuario. Esta directiva
puede tener muchas formas distintas.
Si se especifica una ruta que no empieza con una barra ("/"), se asume que va a ser una ruta de directorio relativa al directorio home del usuario especificado. Dada ésta configuración:
UserDir public_html
La URL http://example.com/~rbowen/file.html
se traducirá en
la ruta del fichero /home/rbowen/public_html/file.html
Si la ruta que se especifica comienza con una barra ("/"), la ruta del directorio se construirá usando esa ruta, más el usuario especificado en la configuración:
UserDir /var/html
La URL http://example.com/~rbowen/file.html
se traducirá en
la ruta del fichero /var/html/rbowen/file.html
Si se especifica una ruta que contiene un asterisco (*), se usará una ruta en la que el asterisco se reemplaza con el nombre de usuario. Dada ésta configuración:
UserDir /var/www/*/docs
La URL http://example.com/~rbowen/file.html
se traducirá en
la ruta del fichero /var/www/rbowen/docs/file.html
También se pueden configurar múltiples directorios o rutas de directorios.
UserDir public_html /var/html
Para la URL http://example.com/~rbowen/file.html
,
Apache buscará ~rbowen
. Si no lo encuentra, Apache buscará
rbowen
en /var/html
. Si lo encuentra, la URL de más
arriba se traducirá en la ruta del fichero
/var/html/rbowen/file.html
Redirigiendo a URLs externas
La directiva UserDir
puede
usarse para redirigir solcitudes de directorios de usuario a URLs externas.
UserDir http://example.org/users/*/
El ejemplo de aquí arriba redirigirá una solicitud para
http://example.com/~bob/abc.html
hacia
http://example.org/users/bob/abc.html
.
Restringiendo qué usuarios pueden usar esta característica
Usando la sintaxis que se muestra en la documentación de UserDir, usted puede restringir a qué usuarios se les permite usar esta funcionalidad:
UserDir disabled root jro fish
La configuración de aquí arriba permitirá a todos los usuarios excepto a
los que se listan con la declaración disabled
. Usted puede,
del mismo modo, deshabilitar esta característica para todos excepto algunos
usuarios usando una configuración como la siguiente:
UserDir disabled UserDir enabled rbowen krietz
Vea la documentación de UserDir
para más
ejemplos.
Activando un directorio cgi para cada usuario
Para dar a cada usuario su propio directorio cgi-bin, puede usar una directiva
<Directory>
para activar cgi en un subdirectorio en particular del directorio home del usuario.
<Directory "/home/*/public_html/cgi-bin/"> Options ExecCGI SetHandler cgi-script </Directory>
Entonces, asumiendo que UserDir
está configurado con la
declaración public_html
, un programa cgi example.cgi
podría cargarse de ese directorio así:
http://example.com/~rbowen/cgi-bin/example.cgi
Permitiendo a usuarios cambiar la configuración
Si quiere permitir que usuarios modifiquen la configuración del servidor en
su espacio web, necesitarán usar ficheros .htaccess
para hacer
estos cambios. Asegúrese de tener configurado AllowOverride
con un valor suficiente que permita a
los usuarios modificar las directivas que quiera permitir.
Vea el tutorial de .htaccess para obtener detalles adicionales sobre cómo funciona.