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

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

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

【本文受版权保护】转载请注明出处:www.tangshua【未经授权禁止转载】转载请注明出处:www.tangshuang.netng.net
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【转载请注明来源】【访问 www.tangshuang.net 获取更多精彩内容】x 中实现 fallback 的能力。增原创内容,盗版必究。【未经授权禁止转载】加了一个 @rewrite_uri 的规【未经授权禁止转载】转载请注明出处:www.tangshuang.net则,这个规则里面,对 $request_【转载请注明来源】【本文首发于唐霜的博客】uri 进行匹配,通过正则把顶层目录取出【版权所有,侵权必究】【原创不易,请尊重版权】来,在用 rewrite 进行规定。

本文版权归作者所有,未经授权不得转载。本文作者:唐霜,转载请注明出处。

通过这种方式,我们不仅可以去除顶层目录,转载请注明出处:www.tangshuang.net本文版权归作者所有,未经授权不得转载。而且可以实现我们想要的重写效果。

【访问 www.tangshuang.n【作者:唐霜】未经授权,禁止复制转载。et 获取更多精彩内容】本文作者:唐霜,转载请注明出处。