Quantcast
Channel: Nginx Forum
Viewing all articles
Browse latest Browse all 53287

RegEx VHost name and the default VHost

$
0
0
Hello!

VHost names with RegEx is an absolutely imazing feature of nginx. I llllllllllllllove it! :) But now I've got an issue with it.

On my VM I have a VHost templates ax-common-vhost and use it for VHsots like project.area.loc, so the server_name rule is:

server_name ~^(.*)\.(.*)\.loc$;

It works fine and has already saved much time for me. But the default VHost seems to get a trouble with my template. When a site, that uses it, is active, the default VHost also is trieng to use the template.

Example:

/etc/nginx/sites-available:
> default
-- root /usr/share/nginx/html
-- server_name localhost;
> test.sandbox.loc
-- include /etc/nginx/sites-available/ax-common-vhost;
> ax-common-vhost
-- server_name ~^(.*)\.(.*)\.loc$;
-- if ($host ~ ^(.*)\.(.*)\.loc$) {
set $project $1;
set $area $2;

set $folder "$area/$project";
set $domain "$project.$area.loc";
}
-- root /var/www/$folder/;
-- test.sandbox.loc (based on the ax-common-vhost)

/etc/nginx/sites-enabled:
> default
> test.sandbox.loc

By access to the server default VHost (over IP of the VM) an error occures:

2013/01/23 18:41:19 [error] 4051#0: *1 directory index of "/var/www//" is forbidden, client: 192.168.56.1, server: ~^(.*)\.(.*)\.loc$, request: "GET / HTTP/1.1", host: "192.168.56.101"

When I change the server root rule in the template e.g. to /var/www/ and place a test file (index.html) into my webroot folder, it is displayed.

That means: Nginx uses my template for the default host. But "192.168.56.101" cannot be mached to "^(.*)\.(.*)\.loc$"! Is it a bug?

Viewing all articles
Browse latest Browse all 53287

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>