try_files ディレクティブがどのように機能するかを理解するのに苦労しています。インデックス ファイル (http://domain.com/) が使用されている場合、この構成は期待どおりに機能します。
X-Fcgi-Script-Name /main_apps/domain.com/index.php
X-Script-Filename /var/www/main_apps/domain.com/index.php
ただし、PHP スクリプト (index.php またはその他) を指定すると、try_files は期待どおりにファイルを検索しますが、変数を見てください。
X-Fcgi-Script-Name /index.php
X-Script-Filename /var/www/index.php
私の質問は次のとおりです: try_files ディレクティブによって選択されたディレクトリを見つけるにはどうすればよいですか?
使用されたサーバー構成:
server {
server_name ~^(?P<domain>.+)$;
root /var/www;
autoindex off;
index index.php;
try_files /main_apps/$domain$uri/ /partners/$domain$uri/ =404;
more_set_headers "X-Script-Filename: $request_filename";
more_set_headers "X-Fcgi-Script-Name: $fastcgi_script_name";
# Pass PHP scripts to PHP-FPM
location ~ \.php$ {
fastcgi_param SCRIPT_FILENAME $request_filename;
include php_fpm_params;
}
}
注: 私が使用する Nginx は、サードパーティ モジュールHeadersMoreでコンパイルされています。