3
我想從Apache + mod_php
遷移到Nginx + PHP-FPM
。我目前使用mod_rewrite
來重寫一些以.php
結尾的虛擬URI到實際的PHP腳本。這在使用mod_php
時非常有效。但與Nginx + FPM
,因爲我們必須使用proxy_pass
,這是行不通的。當我添加一個正則表達式位置塊以匹配.php
擴展名時,它獲得最高優先級,並且我的重寫規則不適用。在nginx中同時使用重寫和php-fpm .php擴展名
我該如何解決這個問題?
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;
}