nginx获取顶层目录,重写至顶层目录下的index.html

广告位招租
扫码页面底部二维码联系

最近再部署测试环境时,考虑到我们的特殊需【版权所有】唐霜 www.tangshuang.net本文版权归作者所有,未经授权不得转载。求,希望按模块进行发布测试,每个模块被放【转载请注明来源】【关注微信公众号:wwwtangshuangnet】在一个文件夹中进行发布,所以不得不进行重【访问 www.tangshuang.net 获取更多精彩内容】【版权所有,侵权必究】写,来让请求fallback到目录下的i【版权所有】唐霜 www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】ndex.html. 例如当我们访问 /转载请注明出处:www.tangshuang.net【版权所有】唐霜 www.tangshuang.netsome-module/xxx/xxx 【未经授权禁止转载】【本文首发于唐霜的博客】时,实际上fallback到 /some【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。-module/index.html。而【访问 www.tangshuang.net 获取更多精彩内容】【本文受版权保护】我们发布测试模块时增量的,所以可能过两天【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.net会发布一个 any-module 来测试【原创内容,转载请注明出处】【版权所有,侵权必究】,不大可能写死在 nginx 的 con【作者:唐霜】转载请注明出处:www.tangshuang.netfig 中。所以,我的想法是,在 ngi【本文首发于唐霜的博客】【本文受版权保护】nx 中实现一种配置,可以实现这种能力。未经授权,禁止复制转载。原创内容,盗版必究。具体实现如下:

本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。【原创不易,请尊重版权】【原创内容,转载请注明出处】
location / {
try_files $uri $uri/ index.html @rewrite_uri;
}

location @rewite_uri {
if ($request_uri ~ /([a-z0-9_-:]+)/) {
set $tmp /$1/index.html;
rewrite ^ $tmp break;
}
}

使用 try_files 来在 ngin【本文首发于唐霜的博客】【版权所有,侵权必究】x 中实现 fallback 的能力。增【未经授权禁止转载】未经授权,禁止复制转载。加了一个 @rewrite_uri 的规原创内容,盗版必究。未经授权,禁止复制转载。则,这个规则里面,对 $request_转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】uri 进行匹配,通过正则把顶层目录取出【转载请注明来源】【作者:唐霜】来,在用 rewrite 进行规定。

本文作者:唐霜,转载请注明出处。转载请注明出处:www.tangshuang.net【关注微信公众号:wwwtangshuangnet】

通过这种方式,我们不仅可以去除顶层目录,本文作者:唐霜,转载请注明出处。著作权归作者所有,禁止商业用途转载。而且可以实现我们想要的重写效果。

本文作者:唐霜,转载请注明出处。【作者:唐霜】【版权所有】唐霜 www.tangshuang.net【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。