[英]Try_files does not hit PHP ( NginX configuration)
下面是我的nginx.conf。
如果是非現有文件,則/index.php
服務正常。
但是當我的URL是/foo/bar => /foo/bar/index.php
通過下載作為PHP源代碼提供時。
有任何想法嗎?
try_files $uri $uri/ $uri/index.php /index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
解決方法是添加索引index.php
index index.php
try_files $uri $uri/ $uri/index.php /index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
我的配置
index index.html index.htm index.php;
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-fpm.sock;
include fastcgi_params;
}
重新加載nginx和fastcgi
我也有同樣的問題。 當我在PHP上下文中有以下內容時( location ~ ^(.+\\.php)(.*)$ { ...
):
try_files $fastcgi_script_name =404;
..它總是返回404.最后我讀了try_files文檔 ,其中說:
根據root和alias指令從文件參數構造文件的路徑。
我只為每個位置塊定義了alias
(當然,在PHP-FPM塊中沒有定義),但在任何地方都沒有設置整體root
,因此NGiNX不知道在哪里查找文件。 一旦我為服務器塊設置了root,它就開始工作了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.