Kat*_*tai 3 string variables split nginx
我有一个简单的问题,如果可能的话,这将解决我的一些问题:
是否可以使用nginx拆分/操作request-url?
我的意思是:这样的网址:sub.somewhere.com/something/somethingelse
变成了:
subsomethingsomethingelse
然后进一步:
子/ SOM/ETH/ING/SOM/ETH/ING/ELS/E
然后给定的路径用于检索文件(很可能,它必须存储在可以重复使用或直接使用的变量中)
这有可能吗?或者如果没有,究竟会有什么可能,以及限制在哪里?
(编辑)有没有原生的可能性,包括PERL模块?或者这是唯一的方法吗?(也许是一个只进行字符串处理的小模块?)
cob*_*aco 12
这是可能的,而且相对容易,你需要做的就是将你在regexp上的位置与approriate back references匹配
location ~ (sub).(somewhere).(com)/(some)(thing)/(something)(else) {
set $var1 = $1; # =sub in above example
set $var2 = $2; # =somewhere in above example
set $var3 = $3; # =com in above example
set $var4 = $4; # =some in above example
set $var5 = $5; # =thing in above example
set $var6 = $6; # = something in above example
set $var7 = $7; # = elsein above example
rewrite ^ $1/$2 last; # would be sub/somewhere
}
Run Code Online (Sandbox Code Playgroud)
你需要在重写之前保存反向引用,因为rewrite指令重置对regexp第一个参数中的引用的引用(所以如果你使用其他指令,比如try_files,那么你只需要直接使用反向引用而不保存它们)
| 归档时间: |
|
| 查看次数: |
12304 次 |
| 最近记录: |