如何在 Nginx 中使用查询字符串进行重定向

如何在 Nginx 中使用查询字符串进行重定向

我想重定向:

something.com/search?keywords='value'

something.com/search?q='value'

这是我的 Nginx 配置:

location ~ /search {
       if ($args ~* "keywords=(.*)") {
            rewrite ^.*$ /search?q=$arg_keywords permanent;
        }
    }

q重定向时参数为空。

怎么了?

答案1

但是重定向时 q 参数为空。

我没有看到这个问题。当我按照书面内容测试配置时,它会创建一个重定向循环,因为原始内容keywords='value'被附加到重写的 URI 中。

您可以rewrite通过将 附加?到重写的 URI 来防止包含任何原始参数。

例如:

rewrite ^ /search?q=$arg_keywords? permanent;

这个文件了解详情。

相关内容