需求
需要一个正则表达式,在 nginx 中使用。
如果$uri 不是以/结尾且不以.xml 、.html、.htm 结尾的,才 permanent 到$uri/。
location @rewrite {
rewrite [^\/]$ $uri/ permanent;
rewrite . /index.php?s=$uri&$args last;
}
尝试
我自己的写法,但是失败:
rewrite ([\/]|.xml|.html?)$ $uri/ permanent;
提问
1)如何才可以实现不以.xml .html /结尾的才重写的正则。
2)如何才可以在正则表达式[]中排除完整的一段单词?
补充
我使用了这一句,貌似暂时没有发现问题。
rewrite [^\/|\.xml|\.html?]$ $uri/ permanent;
疑问,方括号[]中的不是 a-zA-Z0-9 吗,也可以写完整的匹配字符串?
你需要的是 支持 并、交、差 的正则表达式引擎:http://nfabo.cn/p/?p=1280
在nginx中,只能用否定反向环视:
.*(?<!\.xml|\.html|\.htm|/)$