0 0

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个答案 按时间排序 按投票排序

0 0

只要将这重复中的数字全部取出来就可以了
使用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伪静态正则表达式的资源,非常的全面详细,有需要的小伙伴可以参考下

    Nginx URL重写rewrite机制原理及使用实例

    Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的。默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持 rewrite是实现URL重写的关键指令,根据regex(正则表达式)...

    nginx重写rewrite基础及实例分享

    nginx rewrite 正则表达式匹配 大小写匹配 ~ 为区分大小写匹配 ~* 为不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配 -f和!-f用来判断是否存在文件 -d和!-d用来判断是否存在...

    详解常用的nginx rewrite重写规则

    主要介绍了详解常用的nginx rewrite重写规则,Nginx的rewrite功能是使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。感兴趣的可以一起来了解一下

    实战nginx-张宴

    11.1 用HTTPS( SSL) 构建一个安全的Nginx Web服务器 11.2 采用Nginx搭建FLV视频服务器 11.3 Nginx+PHP+MySQL在小内存VPS服务器上的优化 11.4 采用Nginx搭建正向代理服务器 第4部分 模块篇 第12章 Nginx的核心...

    实战Nginx:取代Apache的高性能Web服务器 第一章

    11.1 用HTTPS(SSL)构建一个安全的Nginx Web服务器 11.2 采用Nginx搭建FLV视频服务器 11.3 Nginx+PHP+MySQL在小内存VPS服务器上的优化 11.4 采用Nginx搭建正向代理服务器 第4部分 模块篇 第12章 Nginx的核心模块 ...

    实战Nginx.取代Apache的高性能Web服务器

    11.1 用HTTPS(SSL)构建一个安全的Nginx Web服务器 11.2 采用Nginx搭建FLV视频服务器 11.3 Nginx+PHP+MySQL在小内存VPS服务器上的优化 11.4 采用Nginx搭建正向代理服务器 第4部分 模块篇 第12章 Nginx的核心...

    让Nginx支持Rewrite功能,所依赖的PCRE包:pcre_8.35

    PCRE 作用是让 Nginx 支持 Rewrite 功能。 PCRE (Perl Compatible Regular Expressions) 包括 perl 兼容的正规表达式库。

    Nginx Rewrite规则与使用介绍和技巧实例

    主要介绍了Nginx Rewrite规则与使用介绍和技巧实例,本文讲解了正则表达式匹配、文件及目录匹配、flag标记、Nginx Rewrite相关指令等内容,需要的朋友可以参考下

    nginx rewrite 伪静态配置参数详细说明

    正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在...

    nginx rewrite 伪静态配置参数和使用例子

    正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在...

    详解nginx配置location总结及rewrite规则写法

    一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 ...

    Nginx服务器中的重定向配置参考指南

    rewrite 正则表达式 替换目标 flag标记 flag标记可以用以下几种格式: last – 基本上都用这个Flag。 break – 中止Rewirte,不在继续匹配 redirect – 返回临时重定向的HTTP状态302 permanent – 返回永久...

    nginx目录路径重定向的方法

    修改root映射,通过Nginx rewrite内部跳转,设置别名alias映射实现,通过nginx的permanent 301绝对跳转实现. 1 nginx修改root映射 修改root映射实现nginx目录访问重定向是最简单的方式, 推荐采用这一种. location /...

    Nginx 转发匹配规则的实现

    一、正则表达式匹配 ~ 为区分大小写匹配 ~* 为不区分大小写匹配 !~ 和 !~* 分别为区分大小写不匹配及不区分大小写不匹配 二、文件及目录匹配 -f 和 !-f 用来判断是否存在文件 -d 和 !-d 用来判断是否存在目录 ...

    Centos6.4 编译安装 nginx php的方法

    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 编译...

    Linux下Nginx安装的方法(pcre和openssl)

    1. 安装PCRE库(Nginx的rewrite模块和HTTP核心模块会用到PCRE正则表达式语法) 不用考虑是否已安装,直接上命令: 使用yum来安装: [root@example.com ~]# yum install pcre pcre-devel 或者用apt-get: [root@e

    Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解

    PCRE(Perl Compatible Regular Expressions) http://www.pcre.org 是一个Perl库,包括 perl 兼容的正则表达式库。nginx rewrite依赖于PCRE库,所以在安装Tengine前一定要先安装PCRE,最新版本的PCRE可在

Global site tag (gtag.js) - Google Analytics