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"; 
    } 
} 
+0

运行nginx的用户可以使用当前权限访问domainname.com的根目录吗?对于根目录内的/ users /文件夹以及其中的任何文件也是同样的问题。 –

+0

是的,运行nginx的用户可以使用当前权限访问domainname.com的根目录和/ users目录,并且一切正常,唯一的问题是目录名称与输入的路由冲突。 – rohit

+0

..你不处理符号链接吗? –

我认为你需要在try_files指定$url/来测试目录的存在后/丢失时:

try_files $uri $url/ /index.html =404; 

这应该兑现你index指令时,有一个匹配目录。

+0

没有这个不行 – rohit

问题是,我有$ uri/in'/ etc/nginx/sites-available/default',只是需要删除它。