nginx给出403如果目录存在
问题描述:
我有以下配置应该工作,但如果该目录存在于url路径中,我仍然得到403。nginx给出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;
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_files
指定$url/
来测试目录的存在后/
丢失时:
try_files $uri $url/ /index.html =404;
这应该兑现你index
指令时,有一个匹配目录。
+0
没有这个不行 – rohit
答
问题是,我有$ uri/in'/ etc/nginx/sites-available/default',只是需要删除它。
运行nginx的用户可以使用当前权限访问domainname.com的根目录吗?对于根目录内的/ users /文件夹以及其中的任何文件也是同样的问题。 –
是的,运行nginx的用户可以使用当前权限访问domainname.com的根目录和/ users目录,并且一切正常,唯一的问题是目录名称与输入的路由冲突。 – rohit
..你不处理符号链接吗? –