Versión 2.4 del Servidor HTTP Apache

Apache > Servidor HTTP > Documentación > Versión 2.4 > How-To / Tutorials

# 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.

### Consulte también

- Mapeando URLs al sistema de ficheros

## Directorios web por usuario

Módulos Relacionados | Directivas Relacionadas
--- | ---
`mod_userdir` | `UserDir` `DirectoryMatch` `AllowOverride`

## 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.