0

ISPConfig3 サーバーで PHP-FPM と一緒に nginx を使用しています。

次の書き換えルールをnginxディレクティブに入れました(Pydioでよりきれいなリンクを作成するため):

location ~ \.php$ {
        try_files @php;
    }

location @php {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9026;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
    }

proxy_set_header X-Accel-Mapping /var/www/XXXYYY.com/pydio/data/=/data/;

location /conf/       { deny all; }
location /data/       { internal; }

location /data/public/ {
    try_files $uri $uri.php =404 last;
}

pydio.XXXYYY.com/data/public/* の URL に .php 拡張子を追加したい。このルールは、アドレス バーに .php がないファイルを検出しますが、実行される代わりにダウンロードされます。

私はISPConfig3を使用しているため、.phpファイルの書き換え(PHP-FPMで実行するため)は、記載されている部分の上にあります。しかし、「最後」を追加することでそれを処理する必要があると思いました。

他に何を試すことができますか?ありがとうございました!

4

1 に答える 1

1

まず、try_files ディレクティブを誤解しています。「最後の」引数はなく、あなたが思うようには機能しません。ドキュメントを確認してください: http://nginx.org/r/try_files。これは技術文書です。文字どおりに読んでください。すべての単語には意味があります。

問題を解決するには、 から最後の 2 つの引数を削除する必要がありますtry_files

try_files $uri $uri.php =404 last;

次のものに置き換える必要があります。

try_files $uri $uri.php;
于 2014-04-09T08:16:20.557 に答える