簡體   English   中英

Try_files沒有命中PHP(NginX配置)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM