Presumi que as correspondências de regex fossem mais específicas primeiro, e não fossem escritas primeiro. A regex final mostrada no meu log foi combinando e parando.
Eu tenho o local abaixo, que está entre um arquivo conf maior.
Como referência, isso funciona:
location = /scripts/news/admin/index.js {
alias /my/file/path/news/scripts/admin/index.js;
}
Isso, no entanto, não consegue pegar o regex (como um teste estou forçando o caminho do arquivo, mas ainda não é usado):
location ^~ ^/scripts/([a-z]+)/([a-z]+)/([a-z]+).js$ {
alias /my/file/path/news/scripts/admin/index.js; # for testing, use direct file location
break; # ensuring nothing else happens, for testing
#alias /my/file/path/$1/scripts/$2/$3.js; # actual regex
}
Estou perdendo algo claramente óbvio no meu regex? Eu tentei (.*)
e ~*
, mas não faz diferença. O URL usado é:
http://example.com/scripts/news/admin/index.js
Nos meus registros, vejo:
2015/03/21 20:43:28 [debug] 16440#0: *183689 test location: "^/scripts/(\w+)/(\w+)\.js$"
2015/03/21 20:43:28 [debug] 16440#0: *183689 test location: "/"
2015/03/21 20:43:28 [debug] 16440#0: *183689 test location: "scripts/([a-z]+)/([a-z]+)/([a-z]+).js"
2015/03/21 20:43:28 [debug] 16440#0: *183689 test location: "thirdparty"
2015/03/21 20:43:28 [debug] 16440#0: *183689 test location: "skins"
2015/03/21 20:43:28 [debug] 16440#0: *183689 test location: ~ "\.(jpg|jpeg|gif|css|png|js|ico|html)$"
2015/03/21 20:43:28 [debug] 16440#0: *183689 using configuration "\.(jpg|jpeg|gif|css|png|js|ico|html)$"
Por que a terceira entrada não está pegando e parando?
Presumi que as correspondências de regex fossem mais específicas primeiro, e não fossem escritas primeiro. A regex final mostrada no meu log foi combinando e parando.