perl regex to extract "domain" and "extension" into variables from 'server_name'

kml865 at airpost.net kml865 at airpost.net
Fri Jan 10 22:32:41 UTC 2014


I want to extract just the "domain" and "extension" parts from an nginx
server_name for use as variables later in nginx conf.

For example,

	server_name <some PERL regex ... ?<domain> ... ?<extension>
	...>;
	...
	location = /test.html {
	        alias /local/path/to/$domain.$extension.html;
	}

No matter what the server_name contains, from

	mydomain.tld

to

	https://www.mydomain.tld:80/something

and variations in between,the result should be

	$domain = mydomain
	$extension = tld

I found this post

	"Perl Regex to get the root domain of a URL"
	 http://stackoverflow.com/questions/15627892/perl-regex-to-get-the-root-domain-of-a-url

that suggest this perl regex

	^.*://(?:[wW]{3}\.)?([^:/]*).*$

works to extract & return "domain.tld" from any from of input URI.

What's the right form of that regex in nginx's server_name to populate
<domain> and <extension> variables for subsequent use?



More information about the nginx mailing list