我使用nginx配置了一個非常標準的網絡服務器。服務器按預期工作,但是,我想了解一個小配置詳細信息。Nginx:try_files外部位置
我現在的配置是:
index index.html index.htm index.php;
location/{
try_files $uri $uri/ /index.php?q=$uri;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
有了這個配置,如果我訪問:http://myweb.com/wp-content/uploads/2012/10/cropped-bitmap11.png/lol.php我收到了404如預期。
然而,這種配置:
try_files $uri =404;
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
我得到 「拒絕訪問」 空白頁。
爲什麼結果不同?
謝謝
'位置塊外的try_files指令不會在位置塊內繼承'我認爲這是關鍵點。如果這是正確的,一切都有道理 –