現場,favicon.ico
保存在/images/
目錄中,而不是根目錄。我該如何告訴nginx
去那裏看?與nginx,你如何重寫請求到不同的目錄?
嘗試 - 這看起來正確,但不工作:
location = /favicon.ico$ { rewrite /(.*) /images/$1 last; }
回報404 Not Found
文件有:請求http://www.example.com/images/favicon.ico
成功
現場,favicon.ico
保存在/images/
目錄中,而不是根目錄。我該如何告訴nginx
去那裏看?與nginx,你如何重寫請求到不同的目錄?
嘗試 - 這看起來正確,但不工作:
location = /favicon.ico$ { rewrite /(.*) /images/$1 last; }
回報404 Not Found
文件有:請求http://www.example.com/images/favicon.ico
成功
location = /favicon.ico {
root /path/to/your/images;
}
我們也可以重寫解決這個問題。 (我不得不使用重寫來解決這個問題,因爲我使用的是try_files
指令。)
這裏是我的配置:
# Long cache times for static content
location ~ /_/static/(.+)$ {
# hold the last five versions of our static content
try_files
/_/static_477526f-master/$1
/_/static_05c8613-release/$1
/_/static_05c8613-master/$1
/_/static_db26497-release/$1
/_/static_db26497-master/$1;
expires 365d;
add_header Cache-Control public;
add_header Access-Control-Allow-Origin *;
}
location = /favicon.ico {
rewrite . /_/static/favicon.ico;
expires 14d;
add_header Cache-Control public;
}
的.
正則表達式匹配任何東西,而且第二條目重寫URL。由於這是一個favicon特定的位置,我們可以對其進行硬編碼,而不是使用正則表達式捕獲和$1
。
作品!涼!有沒有辦法做到這一點使用路徑相對做_document_根?順便說一句,偉大的鏈接 – 2012-07-11 12:56:11
你可以使用相對於服務器根目錄的路徑,它是在編譯時通過「prefix =」參數或「p =」命令行參數或%% PREFIX %% env變量設置的。 http://nginx.org/en/docs/install.html – VBart 2012-07-11 13:54:15
但我建議留在絕對路徑。顯式配置比任何隱含的東西都要好。 – VBart 2012-07-11 13:58:40