server {
listen 80;
server_name pwta;
root html;
location /test/{
alias html/test/;
autoindex on;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
此配置有效。但是,如果location /test/
被替換,例如location /testpath/
它不起作用(沒有指定輸入文件)。我根據別名指令的解釋假定「位置」部分被丟棄,因此/testpath/info.php
將導致html/test/info.php
。nginx別名+位置指令
感謝您的任何建議。
我不完全明白爲什麼這樣做,但確實解決了問題。任何人都可以添加更多關於中間位置塊的更多解釋嗎? – Brad 2013-12-04 20:33:57
添加'alias'將有效地覆蓋'$ document_root'到任何別名。請注意,它不會影響'$ fastcgi_script_name'或'$ request_filename'。使用新的'$ document_root'和正則表達式匹配文件名,解析爲腳本文件。 – Gajus 2015-03-27 16:55:50
注意,當請求位於'/ testpath /'下時,最後一個位置塊沒有做任何事情。 – Gajus 2015-03-27 17:02:20