nginx 重写规则求助

2015-04-16 22:24:28 +08:00
 ab
wordpress的一些tag原来为中文,当改为英文时,需要做一些重定向.


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

这样的规则该怎么弄,试了半天都没有成功
3351 次点击
所在节点    NGINX
9 条回复
yangqi
2015-04-16 22:26:05 +08:00
这种只能在应用里面设置,nginx又不带翻译,除非你把所有的全部列出来
ryd994
2015-04-16 22:43:23 +08:00
可以用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-04-17 00:20:36 +08:00
@ryd994 哇,谢谢
richardhc
2015-04-17 09:13:46 +08:00
@ryd994 map功能好强大!~ 以前还是一条一条写rewrite...
ryd994
2015-04-17 10:39:41 +08:00
@richardhc 没有特别需求的话其实建议少用rewrite模块,特别是if is evil。性能会比较好
tianchaijz
2015-04-17 20:47:24 +08:00
其实用 ngx_lua 模块,一小段 Lua 代码就能解决
richardhc
2015-04-19 11:14:27 +08:00
@ryd994 受教了~
@tianchaijz ngx_lua也很牛。。。不知道和上面说的map相比,性能咋样。
ab
2015-05-28 13:50:49 +08:00
@ryd994 无效,无限重定向,可否给一个联系方式?
ryd994
2015-05-28 20:38:22 +08:00
@ab 一灵二溜四叁期午叁午

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

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

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

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

© 2021 V2EX