Location url start with modifier, nginx -t pass the configuration test

Maxim Dounin mdounin at mdounin.ru
Fri Feb 10 12:45:02 UTC 2017


Hello!

On Fri, Feb 10, 2017 at 01:31:34PM +0800, linbo liao wrote:

> I setup an test Nginx 1.10.3 on local VM (Centos 6.7 x86_64). I configure
> the following location
> 
> location =/404.html {
>     root    /usr/share/nginx/html;
> }
> 
> As my understanding, it is not an valid url, but `nginx -t`  pass the
> configuration test.
> 
> Is it a bug ?

In this particular case the location is interpreted as "/404.html" 
with "=" modifier (see http://nginx.org/r/location).  That is, it 
matches requests to "/404.html" exactly.  Space between "=" and 
"/404.html" can be omitted, and nginx is smart enough to recognize 
this.

On the other hand, there are no limitations on locations to 
configure in nginx.conf.  You can configure anything you like, 
even locations which can't match real URIs.  Moreover, such 
locations can used for artificial processing with rewrites, and 
I've seen such configs in practice.  This is not something I can 
recommend though.

-- 
Maxim Dounin
http://nginx.org/


More information about the nginx mailing list