Angularjs 如果目录存在,nginx给出403
我有下面的配置应该可以工作,但是如果url路径中存在目录,我仍然会得到403 例如:domainname.com/users 如果用户目录存在,我会得到403,而不是加载index.htmlAngularjs 如果目录存在,nginx给出403,angularjs,nginx,server,Angularjs,Nginx,Server,我有下面的配置应该可以工作,但是如果url路径中存在目录,我仍然会得到403 例如:domainname.com/users 如果用户目录存在,我会得到403,而不是加载index.html server { listen 80; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; server_name www.domainname.com; ret
server {
listen 80;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
server_name www.domainname.com;
return 301 https://www.domainname.com$request_uri;
root /usr/share/nginx/dist/;
index index.html;
location / {
autoindex off;
try_files $uri /index.html =404;
}
# these settings are from https://github.com/h5bp/server-configs-nginx/blob/master/h5bp/location/expires.conf
# feel free to change as much as you like
# cache.appcache, your document html and data
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
expires -1;
access_log logs/static.log;
}
# Feed
location ~* \.(?:rss|atom)$ {
expires 1h;
add_header Cache-Control "public";
}
# Media: images, icons, video, audio, HTC
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
# CSS and Javascript
location ~* \.(?:css|js)$ {
expires 1y;
access_log off;
add_header Cache-Control "public";
}
}
我认为您需要在try_文件中指定$url/以测试在缺少尾随/时是否存在目录:
try_files $uri $url/ /index.html =404;
当存在匹配目录时,这应该遵守您的index指令。问题是我有$uri/in'/etc/nginx/sites available/default',只需要删除它。运行nginx的用户可以使用当前权限访问domainname.com的根目录吗?对于根目录中的/users/文件夹和其中的任何文件,也有相同的问题。是的,运行nginx的用户可以使用当前权限访问domainname.com的根目录和/users目录,并且一切正常,唯一的问题是当目录名与输入的路由冲突时…并且您没有处理符号链接,对吗?不,我没有任何符号链接