Regex nginx位置中的匹配子字符串
我正在使用nginx 1.4.3,并尝试在长url中匹配长字符串或子字符串,如下所示:Regex nginx位置中的匹配子字符串,regex,nginx,location,Regex,Nginx,Location,我正在使用nginx 1.4.3,并尝试在长url中匹配长字符串或子字符串,如下所示: 没有任何正则表达式的长url location ~* /index.php?/english/Kbase/Article/IRS { proxy_pass http://backend; proxy_cache kbase-cache; <...> } 结果:效果很好 结果:效果很好 示例1、
location ~* /index.php?/english/Kbase/Article/IRS {
proxy_pass http://backend;
proxy_cache kbase-cache;
<...>
}
结果:效果很好缺少必须终止正则表达式的$符号 例如 一定是
location ~* /idx/index.php\?/Kbase/branch/Article/\d+.*$ {
?
表示前面的p
是可选的。你的意思是文字?
?你需要逃出它(\?
)。是的,即使我逃出\?还是不匹配。即使是最简单的表单位置~*IRS${return 410;}也不起作用。我遗漏了什么?不,它没有,$
只是意味着它必须匹配字符串的结尾。请仔细阅读regex特殊符号,如^
和$
location ~* /idx/index.php?/Tickets/Ticket/ListAll/[\d,]*/6/[\d,]*/[\d,]*.* {
proxy_pass http://backend;
<....>
}
location ~* \.(jpg|jpeg|gif|png)$ {
root /opt/httpdocs;
}
location / {
proxy_pass http://backend;
}
location ~* /idx/index.php\?/Kbase/branch/Article/\d+.* {
location ~* /idx/index.php\?/Kbase/branch/Article/\d+.*$ {