V2EX › NGINX
nginx 重写规则求助
ab ·
2015 年 4 月 16 日 · 4092 次点击
这是一个创建于 3922 天前的主题,其中的信息可能已经有所发展或是发生改变。
wordpress的一些tag原来为中文,当改为英文时,需要做一些重定向.
比如 原tag网址 为 abc.com/tag/中国 现在修改为 abc.com/tag/china
这样的规则该怎么弄,试了半天都没有成功
9 条回复 • 2015年05月28日 20:38:22 +08:00
yangqi
1
yangqi 2015 年 4 月 16 日
这种只能在应用里面设置,nginx又不带翻译,除非你把所有的全部列出来
ryd994
2
ryd994 2015 年 4 月 16 日 via Android ❤️ 1
可以用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
3
ab 2015 年 4 月 17 日 via iPhone
richardhc
4
richardhc 2015 年 4 月 17 日
@
ryd994 map功能好强大!~ 以前还是一条一条写rewrite...
ryd994
5
ryd994 2015 年 4 月 17 日 via Android
@
richardhc 没有特别需求的话其实建议少用rewrite模块,特别是if is evil。性能会比较好
tianchaijz
6
tianchaijz 2015 年 4 月 17 日
其实用 ngx_lua 模块,一小段 Lua 代码就能解决
ryd994
9
ryd994 2015 年 5 月 28 日 via Android