将所有参数重定向到Nginx中的另一个域

0 redirect nginx

只有我能找到的答案才有特定参数,如果参数改变则不起作用.

我有一个URL,例如:

/logs.php?user_id=10032&account_id=10099&message=0&interval=1&online=1&rsid=65374826&action=update&ids=827,9210,82930&session_id=1211546313-1602275138

我需要将此网址重定向到完全不同的域和文件,但保留get参数.

所以它最终重定向到:

https://example.com/the_logger.php?REPEAT_ALL_GET_PARAMETERS_HERE


这是我到目前为止尝试失败的原因:

location logs.php
{
    rewrite https://example.com/the_logger.php?$args last;
}
Run Code Online (Sandbox Code Playgroud)

但它似乎与网址或重定向不匹配.我想我误解了nginx confs的逻辑.如果是.htaccess我想我会好的.如果需要我想要达到的目的,我可以在这里再说几个例子.

Sha*_* C. 5

当你声明这是一个重定向而不是反向代理请求时,我会使用该return指令告诉客户端做一个301302.使用return指令是重定向客户端的更简单且更推荐的方法.

应该做你想做的事情:

location /logs {
    return 302 https://example.com/the_logger.php$is_args$args;
}
Run Code Online (Sandbox Code Playgroud)

$is_args将输出?当且仅当查询字符串不是空的,并且$args是查询字符串本身