nginx用查询字符串重写url

前端之家收集整理的这篇文章主要介绍了nginx用查询字符串重写url前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我一直在谷歌上搜索,并且无法想出这个.看起来很简单,我确信它是,但我不是服务器专家.

我的网址是:http://www.example.com/blog/?tag = Word1 Word2

有些标签是单个字(例如:自行车),有些标签更长(例如:两轮自行车).

我需要将此url输出为:example.com/blog/tag/word1-word2/

如何才能重写以实现这一目标?

最佳答案
您应该在您的查询中发送 – 而不是获得相同的格式并提出更简单的请求:

location ~ /blog/ {
    if ($args ~* "tag=(.*)") {
        set $w1 $1;
        rewrite .* /blog/tag/$w1/? permanent;
    }
}

基于我发布的链接

?最后将删除查询字符串参数(从rewrite doc)

If you specify a ? at the end of a rewrite then Nginx will drop the original $args (arguments)

另一个实现它是将args设置为空:

set $args '';

猜你在找的Nginx相关文章