Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 将Nginx从“重写”转换为“重写”;如果;至;试试“U文件”;_.htaccess_Nginx_Rewrite - Fatal编程技术网

.htaccess 将Nginx从“重写”转换为“重写”;如果;至;试试“U文件”;

.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

我有以下NGINX重写规则,它非常适合安装在子文件夹中的PHP脚本:

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