Я пытался получить статическую конфигурацию для nginx, работающего с try_files, но столкнулся с некоторыми проблемами. Ниже приводится то, что я работаю прямо сейчас (но не имеет дело с каталогами, показом индекса и т. Д.). Я хотел бы посмотреть, смогу ли я получить версию с работающим try_files ...
server {
listen 80;
server_name foo.com;
rewrite ^ http://www.foo.com$uri permanent;
}
# the server directive is nginx's virtual host directive.
server {
# port to listen on. Can also be set to an IP:PORT
listen 80;
# Set the charset
charset utf-8;
# Set the max size for file uploads to 10Mb
client_max_body_size 10M;
# sets the domain[s] that this vhost server requests for
server_name www.foo.com;
# doc root
root /var/www/foo.com;
# vhost specific access log
access_log /var/log/nginx_access.log main;
# Set image format types to expire in a very long time
location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ {
access_log off;
expires max;
}
# Set css and js to expire in a very long time
location ~* ^.+\.(css|js)$ {
access_log off;
expires max;
}
location /blog {
rewrite ^ http://blog.foo.com permanent;
}
# Catchall for everything else
location / {
root /var/www/foo.com;
access_log off;
index index.html index.shtml;
expires 1d;
#try_files $uri $uri/;
if (-f $request_filename) {
break;
}
}
location ~* ^/(pkg|rpms)/ {
autoindex on;
}
error_page 500 502 503 504 /500.html;
error_page 404 /404.html;
}
Из http://wiki.nginx.org/NginxHttpMainModule#try_files:
В случае, если файл не найден, и вызывается внутреннее перенаправление на последний параметр.
Без URI в конце try_files
, это не сработает.