-
nginx rewrite的一个正则表达式的问题(有重复的概念) 5
有这样规律的url
/c{-aa-(\d+)}会重复1到n遍
比如
/c-aa-11/
/c-aa-11-bb-22/
/c-aa-11-bb-22-cc-21/
在nginx中如何把这个url rewrite成
/cps?tags=(\d+),(\d+),(\d+)等
比如:
/c-aa-11/ rewrite为 /cps?tags=11
/c-aa-11-bb-22/ rewrite为 /cps?tags=11,22
/c-aa-11-bb-22-cc-21/ rewrite为 /cps?tags=11,22,21
location ~* ^/(d|c)-(\w+)-(\d+) {
rewrite "/(d|c)-(\w+)-(\d+)(/?)$" /main/$1ps?tags=$3 last;
}2014年7月27日 21:49
1个答案 按时间排序 按投票排序
-
只要将这重复中的数字全部取出来就可以了
使用split函数按"/"将这个切割成数组
得到一个字符串 像这样c-aa-11-bb-22-cc-21
然后用正则函数 找到数字 11 22 21
Pattern p=Pattern.compile("\\d+");
Matcher m=p.matcher("c-aa-11-bb-22-cc-21");
String url="";
while(m.find()) {
url+="/cps?tag="+m.group()+",";
}
url=url.subString(0,url.length()-2);2014年7月27日 23:23
相关推荐
本文给大家汇总介绍了nginx中使用rewrite伪静态正则表达式的资源,非常的全面详细,有需要的小伙伴可以参考下
Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持 rewrite是实现URL重写的关键指令,根据regex(正则表达式)...
nginx rewrite 正则表达式匹配 大小写匹配 ~ 为区分大小写匹配 ~* 为不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配 -f和!-f用来判断是否存在文件 -d和!-d用来判断是否存在...
主要介绍了详解常用的nginx rewrite重写规则,Nginx的rewrite功能是使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。感兴趣的可以一起来了解一下
11.1 用HTTPS( SSL) 构建一个安全的Nginx Web服务器 11.2 采用Nginx搭建FLV视频服务器 11.3 Nginx+PHP+MySQL在小内存VPS服务器上的优化 11.4 采用Nginx搭建正向代理服务器 第4部分 模块篇 第12章 Nginx的核心...
11.1 用HTTPS(SSL)构建一个安全的Nginx Web服务器 11.2 采用Nginx搭建FLV视频服务器 11.3 Nginx+PHP+MySQL在小内存VPS服务器上的优化 11.4 采用Nginx搭建正向代理服务器 第4部分 模块篇 第12章 Nginx的核心模块 ...
11.1 用HTTPS(SSL)构建一个安全的Nginx Web服务器 11.2 采用Nginx搭建FLV视频服务器 11.3 Nginx+PHP+MySQL在小内存VPS服务器上的优化 11.4 采用Nginx搭建正向代理服务器 第4部分 模块篇 第12章 Nginx的核心...
PCRE 作用是让 Nginx 支持 Rewrite 功能。 PCRE (Perl Compatible Regular Expressions) 包括 perl 兼容的正规表达式库。
主要介绍了Nginx Rewrite规则与使用介绍和技巧实例,本文讲解了正则表达式匹配、文件及目录匹配、flag标记、Nginx Rewrite相关指令等内容,需要的朋友可以参考下
正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在...
正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在...
一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 ...
rewrite 正则表达式 替换目标 flag标记 flag标记可以用以下几种格式: last – 基本上都用这个Flag。 break – 中止Rewirte,不在继续匹配 redirect – 返回临时重定向的HTTP状态302 permanent – 返回永久...
修改root映射,通过Nginx rewrite内部跳转,设置别名alias映射实现,通过nginx的permanent 301绝对跳转实现. 1 nginx修改root映射 修改root映射实现nginx目录访问重定向是最简单的方式, 推荐采用这一种. location /...
一、正则表达式匹配 ~ 为区分大小写匹配 ~* 为不区分大小写匹配 !~ 和 !~* 分别为区分大小写不匹配及不区分大小写不匹配 二、文件及目录匹配 -f 和 !-f 用来判断是否存在文件 -d 和 !-d 用来判断是否存在目录 ...
pcre 是一个正则表达式的库,编译nginx需要依赖该库实现url rewrite 下载源码 cd /usr/local/src wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.bz2 tar jxvf pcre-8.33.tar.bz2 编译...
1. 安装PCRE库(Nginx的rewrite模块和HTTP核心模块会用到PCRE正则表达式语法) 不用考虑是否已安装,直接上命令: 使用yum来安装: [root@example.com ~]# yum install pcre pcre-devel 或者用apt-get: [root@e
PCRE(Perl Compatible Regular Expressions) http://www.pcre.org 是一个Perl库,包括 perl 兼容的正则表达式库。nginx rewrite依赖于PCRE库,所以在安装Tengine前一定要先安装PCRE,最新版本的PCRE可在