2016-03-14 41 views
0

我剛開始用的nginx + uwsgi打,我試圖找出如何使用別名來服務一個robots.txt。以下是這不工作我目前的配置:Nginx的:服務的robots.txt使用別名

http { 
    server { 

     location/{ 
      include uwsgi_params; 
      uwsgi_pass 127.0.0.1:9090; 
     } 

     location /static { 
      root /Users/dave/PycharmProjects/nginx_test/static; 
     } 

     location = /robots.txt { 
      alias /Users/dave/PycharmProjects/nginx_test/static/robots.txt; 
     } 
    } 
} 

基本上,我簡單的測試應用程序是一個瓶應用程序,它應該用瓶路由服務對/*請求,nginx的應該成爲/static/*下靜態文件,但課程robots.txt應該可以通過/robots.txt訪問。 爲什麼我不能像預期的那樣獲得/robots.txt直接而/static/robots.txt作品?

回答

0

到底在哪是robots.txt文件?如果是在/Users/dave/PycharmProjects/nginx_test/static/robots.txt那麼這兩個你root指令和alias指令是錯誤的。

正確root指令與/static/...開始的位置是:

location /static { 
    root /Users/dave/PycharmProjects/nginx_test; 
} 

由於URI追加到文檔根目錄,使全路徑名。

location = /robots.txt的情況下,別名是不需要的,只加了最後一個目錄元素,以形成正確的路徑名:

location = /robots.txt { 
    root /Users/dave/PycharmProjects/nginx_test/static; 
} 

有關更多信息,請參見thisthis

+0

沒錯,robots.txt的是/Users/dave/PycharmProjects/nginx_test/static/robots.txt,但通過使用建議的設置我得到的/robots.txt內部服務器錯誤(500) – daveoncode