Você precisa usar um alias
:
location /assets/ {
alias /communities/$host/;
}
Sou novo no nginx e quero fazer isso:
If the URL contains "/assets" redirect to "/communities/$url_domain"
Em outras palavras:
Requested: "http://www.cats.com/assets/superfile.png"
Redirected:"http://www.cats.com/communities/cats.com/superfile.png"
É algo super simples, mas não está funcionando.
O que eu fiz
location /assets {
root /communities/$host;
}
Mas sempre que tento acessar um arquivo de / assets, obtenho um
404 Not Found
nginx/1.8.1
O que estou fazendo de errado?
Obrigado!
EDITAR:
Eu ativei os logs e vi isso:
2016/02/10 17:27:16 [error] 31#0: *1 open() "/communities/www.cats.com/assets/superfile.png" failed (2: No such file or directory), client: 192.168.1.254, server: _, request: "GET /assets/superfile.png HTTP/1.1", host: "www.cats.com"
Vou investigar mais se conseguir extrair a parte do domínio da url
EDIT2 :
Estrutura de diretórios
/
--/communities/
--------------/cats.com/
---------------------superfile.png
--------------/dogs.com/
---------------------superfile.png
Então, por exemplo:
Os usuários solicitarão este URL www.cats.com/assets/superfile.png
Os usuários verão o mesmo URL.
Tags nginx