<!-- wp:quote -->
<p>location之正则匹配</p><!-- /wp:quote --> <!-- wp:more --> <!-- /wp:more --> <!-- wp:tadv/classic-paragraph --> <p>第六节说了用location的精准匹配来匹配,那么现在要是用正则匹配参与进来呢。</p> <p>我们现在把刚才的两段都注释掉吧</p> <p>

location ~ image {
root /var/www/image;
index index.html index.htm;
}
<p>然后保存配置去/var/www/image目录,如果没有就请创建一个,然后随便从网站上下载一张图片到这个目录下,再之后我们最好改一下你的图片的名字:</p>
<p></p>
<p>然后在你的nginx的HTML目录下面的index文件中添加下面的这样一段话:</p>
<img src="./image/logo.png"/>
<p>填写在body里面,不要乱放位置,这就是说要加载一下我们这个image目录下面的这个logo.png</p>
<p>




location / {
root html;
index index.html index.htm;
}
location ~ image {
root /var/www/image;
index index.html index.htm;
}
<p>这样我们访问网站的时候,"/"跟"/image/logo.png"匹配,同时,"image"正则与"image/logo.png"也匹配,那么该走哪个呢???</p>
<p>正则表达式的成果将会使用,我们可以看看效果</p>
<!-- /wp:tadv/classic-paragraph -->
<!-- wp:tadv/classic-paragraph -->
<p></p>
<p>但是发现还是错误404,通过查看错误日志知道了,我们的正则表达式起作用了,只不过它访问了</p>
<p></p>
<p>/var/www/image/image/logo.png两节image.</p>
<!-- /wp:tadv/classic-paragraph -->
<!-- wp:tadv/classic-paragraph -->
<p>那这就很好办了,我们只需要把配置文件改为:</p>
location ~ image {
root /var/www;
index index.html index.htm;
}
<!-- /wp:tadv/classic-paragraph -->
<!-- wp:paragraph -->
<p>就可以了,然后重启nginx,刷新页面看看:</p>
<!-- /wp:paragraph -->
<!-- wp:tadv/classic-paragraph -->
<p></p>
<p>这样就搞定了.</p>
<p>如果对于下面的例子:</p>
location / {
root html;
index index.html index.htm;
}
location /foor {
root /var/www;
index index.html index.htm;
}
<p>访问http://22132.com/foor</p>
<p>对于url "/foor",两个location的patt都能匹配他们,</p>
<p>即"/"能从左前缀匹配,</p>
<p>"/foor"也能左前缀匹配,</p>
<p>此时真正访问的时/var/www/</p>
<p>原因:这个"/foor"匹配的长</p>
<p></p>
<!-- /wp:tadv/classic-paragraph -->
<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->