我有以下NGINX重写规则,适用于安装在子文件夹中的PHP脚本:
location /subfolder/ {
if (!-e $request_filename){
rewrite ^/subfolder/(.*) /subfolder/index.php?do=/$1;
}
}
但是Nginx wiki说使用“if”是邪恶的http://wiki.nginx.org/IfIsEvil所以我尝试了以下
location /subfolder/ {
try_files $uri $uri/ /subfolder/index.php?$args;
}
但它不能替代上面的那个,虽然它适用于WordPress和大多数PHP脚本。如果有办法将其翻译为使用“try_files”?
谢谢!
答案 0 :(得分:9)
您希望仅在文件不存在时才进行重写,将其用作try_files
location /subfolder {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/subfolder/(.*) /subfolder/index.php?do=/$1;
}