我在 Google 上搜索了好一阵子,还是没搞明白。这看起来很简单,我也确信它很简单,但我不是服务器专家。
我的网址是:http://www.example.com/blog/?tag=Word1+Word2
有些标签是一个单词(例如:自行车),有些则较长(例如:两轮自行车)。
我需要将此 URL 输出为:example.com/blog/tag/word1-word2/
我该如何重写才能实现这一点?
答案1
您应该在查询中发送 - 而不是 + 以获得相同的格式并提出更简单的请求:
location ~ /blog/ {
if ($args ~* "tag=(.*)") {
set $w1 $1;
rewrite .* /blog/tag/$w1/? permanent;
}
}
根据我发布的链接
?
最后将删除查询字符串参数(从重写文档 )
如果在重写末尾指定 ?,则 Nginx 将删除原始 $args(参数)
实现它的另一种方法是将 args 设置为无:
set $args '';