2015-05-30 129 views
0

我想允許免費訪問/index.php以及/public folder及其所有子目錄。不幸的是,無論我嘗試,Nginx仍然拒絕連接,無論是我還是我的腳本(嵌套在html模板中,他們需要訪問公用文件夾才能獲得像css這樣的資源)。只允許訪問index.php和一個公共目錄,用nginx

當我嘗試打開public時,我得到403,就像所有其他路徑一樣。然而,index.php的一切都很好(允許訪問)。 Nginx進程由www-data處理,公用文件夾擁有所有權利。我想念什麼?

這裏是我的nginx的配置:

server { 

     server_name dev; 

     listen 80; 
     listen [::]:80 ipv6only=on; 

     return 301 https://$server_name$request_uri; 

} 

server { 

     fastcgi_buffers 8 16k; 
     fastcgi_buffer_size 32k; 
     fastcgi_connect_timeout 300; 
     fastcgi_send_timeout 300; 
     fastcgi_read_timeout 300; 

     server_name dev; 
     listen 443 default_server ssl; 
     ssl on; 
     ssl_certificate ssl/dev.cert; 
     ssl_certificate_key ssl/dev.nopass.key; 
     ssl_session_timeout 5m; 
     #ssl_protocols TLSv1; 
     ssl_prefer_server_ciphers on; 
     ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+EXP; 

     root /var/www/awesomeProject; 
     index index.php; 

     # deny everything that doesn't match another location 
     location/{ deny all; } 

     location =/{ } # need to allow GET/to internally redirect to /index.php 

     location /index.php { 
       include snippets/fastcgi-php.conf; 
       fastcgi_pass unix:/tmp/php.sock; 
     } 

location = /public { allow all; } 

} 

enter image description here

+0

只需'位置/公共{}'應該工作。 –

+0

它沒有:/我不明白什麼是... –

+0

它說:[錯誤]「/ var/www/awesomeProject/public /」的目錄索引被禁止,客戶端:127.0.0.1,服務器: dev,請求:「GET/public/HTTP/1.1」,主機:「dev」 –

回答

0

我的事實,列出目錄默認是禁止在Nginx的混淆。以上配置適用於真實文件,如/public/style.css

感謝@Alexey Ten