首页 注册 登录
V2EX = way to explore V2EX 是一个关于分享和探索的地方
现在注册 已注册用户请 登录
NGINX NGINX Trac 3rd Party Modules Security Advisories CHANGES OpenResty ngx_lua Tengine 在线学习资源 NGINX 开发从入门到精通 NGINX Modules ngx_echo
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
OP
2015 年 4 月 17 日 via iPhone
@ryd994 哇,谢谢
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 代码就能解决
richardhc
7
richardhc 2015 年 4 月 19 日
@ryd994 受教了〜
@tianchaijz ngx_lua也很牛。。。不知道和上面说的map相比,性能咋样。
ab
8
ab
OP
2015 年 5 月 28 日
@ryd994 无效,无限重定向,可否给一个联系方式?
ryd994
9
ryd994 2015 年 5 月 28 日 via Android
@ab 一灵二溜四叁期午叁午
关于 · 帮助文档 · 自助推广系统 · 博客 · API · FAQ · Solana · 2719 人在线 最高记录 6679 · Select Language 创意工作者们的社区 World is powered by solitude VERSION: 3.9.8.5 · 24ms · UTC 03:46 · PVG 11:46 · LAX 19:46 · JFK 22:46
♥ Do have faith in what you're doing.

AltStyle によって変換されたページ (->オリジナル) /