Quiero servir directorios del directorio de inicio de cada usuario; como el example.com/~user
que se servirá desde /home/user/www
. Hay algunos ejemplos por ahí (como https://unix.stackexchange.com/questions/126745/set-up-nginx-to-serve-files-from-subdirectories ); lo que en parte funciona para mí
Mi problema es: si pudiera habilitar los directorios de usuarios, la raíz (examle.com/) da 404 no encontrado. Tanto el directorio raíz como los directorios de usuario no se pueden habilitar al mismo tiempo.
Probablemente estoy estropeando la configuración. Aquí esta mi /etc/nginx/sites-enabled/default
. He intentado poner el bloque "dir de usuario" encima y debajo de la ubicación "raíz"; Pero el resultado es el mismo.
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#[trimmed]...
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
server {
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#[trimmed]...
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name example.com; # managed by Certbot
#root
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
#user dir
location ~ ^/(.+?)(/.*)?$ {
alias /home/$1/www$2;
index index.html index.htm;
autoindex on;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
#[trimmed]...
}
server {
if ($host = example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
listen [::]:80 ;
server_name example.com;
return 404; # managed by Certbot
}
¿Alguien podría ayudarme a servir el directorio raíz web y los directorios de usuarios al mismo tiempo?
~
, debería haber podido acceder example.com/user
(no example.com/~user
), ¿no? Pero no pude hacerlo.
~
en tu expresión regular. Prueba:location ~ ^/~([^/]+)(/.*)?$ { ... }