Dom*_*que 2 regex nginx url-rewriting
我对 Nginx 进行了这样的重写:
rewrite ^\/.+\/.+\/((?:css|img|includes|js|vendor|template)\/.+)?$ /$1 last;
Run Code Online (Sandbox Code Playgroud)
以下网址:
foo/bar/vendor/datetimepicker/css/datetimepicker.css
Run Code Online (Sandbox Code Playgroud)
被重定向到
css/datetimepicker.css
Run Code Online (Sandbox Code Playgroud)
代替
vendor/datetimepicker/css/datetimepicker.css
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它从头开始而不是只捕获最后一部分?
我发现解决方案可能是使表达式非贪婪,但我尝试的一切都失败了(在所有不同的位置添加了?,添加了 /U...)
如果您知道 URI 仅包含两个前导路径元素,请使用排除该字符的字符类/(例如[^/])。
例如:
^/[^/]+/[^/]+/((?:css|img|includes|js|vendor|template)/.+)?$
Run Code Online (Sandbox Code Playgroud)
但是,如果您有两个或多个前导路径元素,并且需要使它们非贪婪,请使用运算符代替+?运算符+。
例如:
^/.+?/.+?/((?:css|img|includes|js|vendor|template)/.+)?$
Run Code Online (Sandbox Code Playgroud)
或者甚至是上述的混合:
^/[^/]+/.+?/((?:css|img|includes|js|vendor|template)/.+)?$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1961 次 |
| 最近记录: |