我有以下 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”?
谢谢!
最佳答案
您只想在文件不存在时进行重写,将其用作 try_files
中回退的命名位置
location /subfolder {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/subfolder/(.*) /subfolder/index.php?do=/$1;
}
关于.htaccess - 将 Nginx 重写从 "if"转换为 "try_files",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20011583/