Nginx + PHP-FPM
に移行しようとしています。Apache + mod_php
です。現在mod_rewrite
を使用して、.php
で終わる仮想URIを実際のPHPスクリプトに書き直しています。 mod_php
を使用すると、これは完全に機能します。しかしNginx + FPM
で、proxy_pass
を使用する必要があるので、これは機能しません。 の拡張子に一致する正規表現のロケーションブロックを追加すると、最も高い優先順位が得られ、書き換えルールは適用されません。nginxの.php拡張子にrewriteとphp-fpmの両方を使用してください
どうすれば解決できますか?
location /test/ {
rewrite "^/test/([a-z]+).php$" test.php?q=$1 last;
}
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $fastcgi_script_name_custom $fastcgi_script_name;
if (!-f $document_root$fastcgi_script_name) {
set $fastcgi_script_name_custom "/cms/index.php";
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}