Mam kilka zestawów statycznych plików .html
na moim serwerze, a ja chciałbym użyć nginx, aby obsługiwać je bezpośrednio. Na przykład, nginx powinien służyć URI z następującym wzorem:Użyj nginx do udostępniania plików statycznych z podkatalogów danego katalogu
www.mysite.com/public/doc/foo/bar.html
z plikiem .html
, który znajduje się w /home/www-data/mysite/public/doc/foo/bar.html
. Możesz użyć foo
jako nazwy zestawu, a bar
jako nazwy pliku tutaj.
Zastanawiam się, czy po kawałek nginx config by wykonać zadanie:
server {
listen 8080;
server_name www.mysite.com mysite.com;
error_log /home/www-data/logs/nginx_www.error.log;
error_page 404 /404.html;
location /public/doc/ {
autoindex on;
alias /home/www-data/mysite/public/doc/;
}
location = /404.html {
alias /home/www-data/mysite/static/html/404.html;
}
}
Innymi słowy, wszystkie wnioski wzoru /public/doc/.../....html
zamiar być obsługiwane przez nginx, a jeśli dana URI nie jest znaleziony, zwracany jest domyślny www.mysite.com/404.html
.
dzięki za napiwek! jedno pytanie, czy muszę używać wyrażenia regularnego takiego jak '^ (/ public/doc /)' tutaj? Lub '/ public/doc /' jest w porządku? – MLister
just/public/doc/jest wystarczający w tym przypadku, a właściwie nieco lepszy, ponieważ nie ma (małego) dodatkowego obciążenia dopasowania do regex – cobaco