nginx를 다시 작성해야 함

nginx를 다시 작성해야 함

다음과 같은 URL이 있습니다.

index.php?q=123&w=456&e=789

다음과 같이 다시 작성해야 합니다.

index/123/456/789

"if"를 사용하지 않고.

지금까지 나는 다음을 시도했습니다.

location / {
    rewrite ^/index.php\?q=(.*)&w=(.*)&e=(.*)$ /index/$1/$2/$3;
}

하지만 작동하지 않습니다. 어떤 아이디어가 있나요?

답변1

짧은 대답은 을 사용하지 않고는 할 수 없다는 것입니다 if.

긴 대답은 정규식입니다.rewrite구문은 URI와만 일치합니다.

다음과 같이 시도해 보세요.

    location /index.php {
        if ($args ~ "^q=(.*)&w=(.*)&e=(.*)") {
            set $arg_q $1;
            set $arg_w $2;
            set $arg_e $3;
            rewrite_log on;
        rewrite ^ /index/$arg_q/$arg_w/$arg_e last;
        }
    }

관련 정보