.htaccess 将Nginx从“重写”转换为“重写”;如果;至;试试“U文件”;
我有以下NGINX重写规则,它非常适合安装在子文件夹中的PHP脚本:.htaccess 将Nginx从“重写”转换为“重写”;如果;至;试试“U文件”;,.htaccess,nginx,rewrite,.htaccess,Nginx,Rewrite,我有以下NGINX重写规则,它非常适合安装在子文件夹中的PHP脚本: location /subfolder/ { if (!-e $request_filename){ rewrite ^/subfolder/(.*) /subfolder/index.php?do=/$1; } } 但是nginxwiki说使用“if”是邪恶的,所以我尝试了以下方法 location /subfolder/ { try_files $uri $uri/ /subfolder/inde
location /subfolder/ {
if (!-e $request_filename){
rewrite ^/subfolder/(.*) /subfolder/index.php?do=/$1;
}
}
但是nginxwiki说使用“if”是邪恶的,所以我尝试了以下方法
location /subfolder/ {
try_files $uri $uri/ /subfolder/index.php?$args;
}
但是它不能取代上面的一个,尽管它适用于WordPress和大多数PHP脚本。如果有办法翻译它使用“try_文件”
谢谢大家! 如果只想在文件不存在时进行重写,请在
try\u files
location /subfolder {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/subfolder/(.*) /subfolder/index.php?do=/$1;
}
这不起作用,Nginx不会以以下错误消息开始:[emerg]未知指令“$uri”位于/etc/Nginx/Nginx.conf:2252,它引用了以下行:$uri$uri/@rewrite;添加try_文件也没有帮助:try_文件$uri$uri/@rewrite;它生成以下错误:未知指令“@rewrite”位于/etc/nginx/nginx.conf:2254您的nginx版本是什么?是的,我忘记写入
try\u文件
我的nginx版本是1.0.10