-
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
相关推荐
通过上述方法,正则表达式在页面静态化中起到关键作用,帮助我们高效地处理URL转换、内容提取、错误处理和缓存策略等多个环节。掌握正则表达式,能有效提升页面静态化的效果和效率,为网站性能带来显著改善。
这个修饰符用于告诉Nginx,后面跟随的uri是一个正则表达式,并且在匹配时区分大小写。 3. ~*表示不区分大小写的正则匹配。与~相同,不过在进行正则表达式匹配时,会忽略字符的大小写。 4. ^~表示URI以某个常规字符...
Nginx中的rewrite模块是一个非常实用的功能,它允许用户在服务器中动态地重写URL,实现URL的灵活处理,包括URL重定向和内部跳转等操作。rewrite规则在nginx的配置文件中定义,通常在server、location和if指令块中...
### Nginx Rewrite 常用示例解析 #### 一、从非-www 版本自动重定向到 www 版本 ...此外,通过正则表达式的运用,可以实现更复杂、更精确的控制逻辑,使得 Nginx 成为网站架构中不可或缺的一部分。
一个基本的`rewrite`指令由正则表达式、替换字符串和可选的标志组成,如下所示: ```nginx rewrite <regex> <replacement> [flag]; ``` 其中,`<regex>`是匹配的正则表达式,`<replacement>`是替换后的URL,`[flag...
假设有一个在线教育平台,其旧版课程页面URL形如`/course/123`,现需要迁移到新版页面`/courses/123`,同时保留旧链接的可访问性。可以设置以下Rewrite规则: ```nginx rewrite ^/course/(\d+)$ /courses/$1 ...
( PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。 nginx通过ngx_http_rewrite_module模块支持url重写) 该文件为正则表达式库。让nginx支持rewrite需要安装这个库...
Apache的`mod_rewrite`基于Perl兼容正则表达式(Perl Compatible Regular Expressions, PCRE)进行URL重写,通常在`.htaccess`文件中配置。而Nginx的`rewrite`规则则直接在服务器或location块内配置,更强调配置的集中...
在LNMP集成环境中,如果使用的是预装的Nginx,例如在/usr/local/nginx/conf/目录下有一个名为"wordparss"的文件,这就是用来写入rewrite规则的地方。你可以在这个文件中按照Nginx的语法编写规则,它与Apache的`....
这里的`^/old/(.*)$`就是一个Perl正则表达式,它匹配以`/old/`开头的所有URL,并通过`$1`捕获后面的部分。 总之,PCRE库是Nginx实现Rewrite功能的关键,它允许我们使用Perl正则表达式来处理和控制HTTP请求的路由。...
Nginx 中 rewrite 实现二级域名、三级域名、泛域名...Nginx 中的 rewrite 模块可以实现二级域名、三级域名、泛域名、路径的重写,并且可以使用 rewrite flags、正则表达式匹配、全局变量等来实现复杂的 URL 重写逻辑。
- 一个基本的 `rewrite` 规则格式如下:`rewrite <regex> <replacement> ;` - `<regex>` 是正则表达式,用来匹配请求的URI。 - `<replacement>` 是替换后的URI。 - `<flag>` 是可选的标志,如 `last`(停止当前...
如果需要根据查询字符串进行重写操作,可以使用`if`语句结合正则表达式来判断和执行相应规则。 例如,以下配置将根据查询字符串的`id`值重定向到不同的网站: ```nginx if ( $query_string ~ "id=(baidu)(.*)$" ) ...
通过正则表达式匹配,它可以将原始请求URL转换为另一个URL,从而达到动态路由和内容重定向的目的。 在示例配置中: ```nginx rewrite ^(.*)$ http://$http_host$file.mp4 break; ``` 这段配置表明,如果请求的URI...
在Nginx中,使用`rewrite`指令可以实现对URL的重写,其中涉及到正则表达式的匹配方式有以下几种: 1. **区分大小写的匹配**:使用`~`符号,例如:`rewrite ^/example /otherpage permanent;` - 这种情况下,`/...
重写规则可以实现从一个location跳转到另一个location,最多允许10次重定向,超过这个次数,Nginx会返回500错误。此外,`set`指令允许创建新的变量并设置它们的值,这对于记录条件标识、传递参数和记录操作行为非常...
这是一个开源库,广泛用于处理正则表达式,它实现了Perl语言风格的正则表达式功能。在描述中提到,“nginx 的rewrite模块需要 pcre库”,这意味着PCRE是nginx web服务器的rewrite模块的重要组成部分,用于处理URL...