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

相关推荐

    页面静态化的正则表达式

    通过上述方法,正则表达式在页面静态化中起到关键作用,帮助我们高效地处理URL转换、内容提取、错误处理和缓存策略等多个环节。掌握正则表达式,能有效提升页面静态化的效果和效率,为网站性能带来显著改善。

    Nginx正则表达式相关的参数和规则介绍

    这个修饰符用于告诉Nginx,后面跟随的uri是一个正则表达式,并且在匹配时区分大小写。 3. ~*表示不区分大小写的正则匹配。与~相同,不过在进行正则表达式匹配时,会忽略字符的大小写。 4. ^~表示URI以某个常规字符...

    nginx之rewrite

    Nginx中的rewrite模块是一个非常实用的功能,它允许用户在服务器中动态地重写URL,实现URL的灵活处理,包括URL重定向和内部跳转等操作。rewrite规则在nginx的配置文件中定义,通常在server、location和if指令块中...

    nginx rewrite常用示例

    ### Nginx Rewrite 常用示例解析 #### 一、从非-www 版本自动重定向到 www 版本 ...此外,通过正则表达式的运用,可以实现更复杂、更精确的控制逻辑,使得 Nginx 成为网站架构中不可或缺的一部分。

    Nginx关于Rewrite执行顺序详解.docx

    一个基本的`rewrite`指令由正则表达式、替换字符串和可选的标志组成,如下所示: ```nginx rewrite <regex> <replacement> [flag]; ``` 其中,`<regex>`是匹配的正则表达式,`<replacement>`是替换后的URL,`[flag...

    Nginx的Rewrite规则与实例

    假设有一个在线教育平台,其旧版课程页面URL形如`/course/123`,现需要迁移到新版页面`/courses/123`,同时保留旧链接的可访问性。可以设置以下Rewrite规则: ```nginx rewrite ^/course/(\d+)$ /courses/$1 ...

    pcre-8.44.tar

     ( PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。 nginx通过ngx_http_rewrite_module模块支持url重写) 该文件为正则表达式库。让nginx支持rewrite需要安装这个库...

    nginx rewrite规则

    Apache的`mod_rewrite`基于Perl兼容正则表达式(Perl Compatible Regular Expressions, PCRE)进行URL重写,通常在`.htaccess`文件中配置。而Nginx的`rewrite`规则则直接在服务器或location块内配置,更强调配置的集中...

    nginx设置rewrite规则

    在LNMP集成环境中,如果使用的是预装的Nginx,例如在/usr/local/nginx/conf/目录下有一个名为"wordparss"的文件,这就是用来写入rewrite规则的地方。你可以在这个文件中按照Nginx的语法编写规则,它与Apache的`....

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

    这里的`^/old/(.*)$`就是一个Perl正则表达式,它匹配以`/old/`开头的所有URL,并通过`$1`捕获后面的部分。 总之,PCRE库是Nginx实现Rewrite功能的关键,它允许我们使用Perl正则表达式来处理和控制HTTP请求的路由。...

    Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写[文].pdf

    Nginx 中 rewrite 实现二级域名、三级域名、泛域名...Nginx 中的 rewrite 模块可以实现二级域名、三级域名、泛域名、路径的重写,并且可以使用 rewrite flags、正则表达式匹配、全局变量等来实现复杂的 URL 重写逻辑。

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

    - 一个基本的 `rewrite` 规则格式如下:`rewrite <regex> <replacement> ;` - `<regex>` 是正则表达式,用来匹配请求的URI。 - `<replacement>` 是替换后的URI。 - `<flag>` 是可选的标志,如 `last`(停止当前...

    nginx中带问号(?) 带参数的rewrite规则

    如果需要根据查询字符串进行重写操作,可以使用`if`语句结合正则表达式来判断和执行相应规则。 例如,以下配置将根据查询字符串的`id`值重定向到不同的网站: ```nginx if ( $query_string ~ "id=(baidu)(.*)$" ) ...

    nginx脚本引擎与rewrite设计原理(二)

    通过正则表达式匹配,它可以将原始请求URL转换为另一个URL,从而达到动态路由和内容重定向的目的。 在示例配置中: ```nginx rewrite ^(.*)$ http://$http_host$file.mp4 break; ``` 这段配置表明,如果请求的URI...

    实例讲解nginx的rewrite规则

    在Nginx中,使用`rewrite`指令可以实现对URL的重写,其中涉及到正则表达式的匹配方式有以下几种: 1. **区分大小写的匹配**:使用`~`符号,例如:`rewrite ^/example /otherpage permanent;` - 这种情况下,`/...

    Nginx 重写规则教程

    重写规则可以实现从一个location跳转到另一个location,最多允许10次重定向,超过这个次数,Nginx会返回500错误。此外,`set`指令允许创建新的变量并设置它们的值,这对于记录条件标识、传递参数和记录操作行为非常...

    pcre-8.21 源代码

    这是一个开源库,广泛用于处理正则表达式,它实现了Perl语言风格的正则表达式功能。在描述中提到,“nginx 的rewrite模块需要 pcre库”,这意味着PCRE是nginx web服务器的rewrite模块的重要组成部分,用于处理URL...

Global site tag (gtag.js) - Google Analytics