nginx 重写规则求助

2015 年 4 月 16 日
 ab
wordpress的一些tag原来为中文,当改为英文时,需要做一些重定向.


比如 原tag网址 为 abc.com/tag/中国 现在修改为 abc.com/tag/china

这样的规则该怎么弄,试了半天都没有成功
4510 次点击
所在节点    NGINX
9 条回复
yangqi
2015 年 4 月 16 日
这种只能在应用里面设置,nginx又不带翻译,除非你把所有的全部列出来
ryd994
2015 年 4 月 16 日
可以用map
map $tagold $tagnew {
default 404;
%E4%B8%AD%E5%9B%BD china;
%E7%BE%8E%E5%9B%BD usa;
………
}
server{
location ~/tag/(?<tagold>.*){
return 301 /tag/$tagnew;
}
}

大约就这样,如果不行的话贴一下errorlog看看
map左边那一串是中文字符的转义,你可以直接搜索某个中文词,然后把地址栏里的url复制到记事本里查看
ab
2015 年 4 月 17 日
@ryd994 哇,谢谢
richardhc
2015 年 4 月 17 日
@ryd994 map功能好强大!~ 以前还是一条一条写rewrite...
ryd994
2015 年 4 月 17 日
@richardhc 没有特别需求的话其实建议少用rewrite模块,特别是if is evil。性能会比较好
tianchaijz
2015 年 4 月 17 日
其实用 ngx_lua 模块,一小段 Lua 代码就能解决
richardhc
2015 年 4 月 19 日
@ryd994 受教了~
@tianchaijz ngx_lua也很牛。。。不知道和上面说的map相比,性能咋样。
ab
2015 年 5 月 28 日
@ryd994 无效,无限重定向,可否给一个联系方式?
ryd994
2015 年 5 月 28 日
@ab 一灵二溜四叁期午叁午

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/184228

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX