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

kml865 at kml865 at
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




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"

that suggest this perl regex


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