Url rewriting 带有try\u文件的nginx重写规则

Url rewriting 带有try\u文件的nginx重写规则,url-rewriting,nginx,Url Rewriting,Nginx,在这篇文章的底部是我当前的nginx重写规则,在大多数情况下,它都正常工作。我似乎遇到的唯一问题是在一个链接示例中,例如example.com/?action=cmd,该操作将作为example.com/clientrea/?action=cmd处理 我正在寻找一种方式,当它的?调用符号时,它将自动将其附加到example.com/index.php,而不是/clientrea/ location = / { rewrite ^ /clientarea/ permanent; } lo

在这篇文章的底部是我当前的nginx重写规则,在大多数情况下,它都正常工作。我似乎遇到的唯一问题是在一个链接示例中,例如example.com/?action=cmd,该操作将作为example.com/clientrea/?action=cmd处理

我正在寻找一种方式,当它的?调用符号时,它将自动将其附加到example.com/index.php,而不是/clientrea/

location = / {
    rewrite ^ /clientarea/ permanent;
}

location ~ ^(.*)$ {
try_files $uri $uri/ /index.php?$1;
}

假设您有一个最新版本的Nignx 1.0.x+(我认为),这应该可以:

location = / {
    if ($is_args = '?') {
        return 301 $scheme://$host/index.php$is_args$args;
    }
    rewrite ^ /clientarea/ permanent;
}

location ~ ^(.*)$ {
    try_files $uri $uri/ /index.php?$1;
}