How to use regular expressions to automatically match wildcard domain names in nginx

How to use regular expressions to automatically match wildcard domain names in nginx

Nginx uses regular expressions to automatically match wildcard domain names to directories

Nginx can be used to realize the function of virtual host and bind multiple URLs.
Usually the primary domain name is hard-coded in the configuration, so if you want to add a match, you need to add it manually.

Basic writing

The most basic way to write it is server{
listen 80;
server_name www.a.com;
root /html/a;
…
}

server{
listen 80;
server_name www.b.com;
root /html/b;
…
}

Regular expression

After the domain name is bound, it is automatically matched to the corresponding directory, and there is no need to write configurations for each domain name one by one.
The matching directory is: html/domain name/secondary domain name, for example, www.baidu.com will match the baidu.com/www directory

server {
 listen 80;
 # $subdomain will match the second-level domain name and above # $domain will match the first-level domain name # $tld will match the root node name server_name ~^((?<subdomain>.*)\.)?(?<domain>[^.]+)\.(?<tld>[a-zA-Z]+)$;

 #If there is no $subdomain, jump to www
 if ($subdomain = "") {
  # set $subdomain "_";
  set $subdomain "www";
  return 301 $scheme://www.$domain.$tld$request_uri;
 }

 root /usr/share/nginx/html/${domain}.${tld}/${subdomain};
}

other

There are many articles about nginx's matching order, so I won't go into details.
Because regular expressions have the lowest matching priority, they are only matched when no other matches are found, so there is no need to worry about affecting other exact matches.

Most people don’t have so many domain names to match. Instead, they want to block some malicious domain name pointers.

However, when testing, in order not to affect the running web page, you can add an IP domain name record in the hosts and use a non-existent domain name for testing, which is more useful at this time.

Summarize

This is the end of this article about how nginx uses regular expressions to automatically match wildcard domain names to directories. For more information about how nginx uses regular expressions to match wildcard domain names to directories, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Nginx if statement plus regular expression to achieve string truncation
  • Detailed explanation of Nginx regular expressions
  • Detailed explanation of nginx location configuration regular expression example
  • Nginx pseudo-static Rewrite regular resource summary
  • Nginx rewrite regular matching rewriting method example
  • nginx configuration location summary location regular writing and rewrite rule writing
  • Python regular analysis of nginx access log
  • How to use nginx to intercept specified URL requests through regular expressions
  • Introduction to Nginx regular expression related parameters and rules

<<:  MySQL optimization tips: analysis of duplicate removal implementation methods [millions of data]

>>:  JS implements city list effect based on VUE component

Recommend

CentOS method to modify the default ssh port number example

The default ssh port number of Linux servers is g...

Examples of using temporary tables in MySQL

I've been a little busy these two days, and t...

Front-end AI cutting tips (experience)

AI image cutting needs to be coordinated with PS....

CSS tips for controlling animation playback and pause (very practical)

Today I will introduce a very simple trick to con...

In-depth explanation of closure in JavaScript

Introduction Closure is a very powerful feature i...

Detailed explanation of setting up DNS server in Linux

1. DNS server concept Communication on the Intern...

Nginx configuration 80 port access 8080 and project name address method analysis

Tomcat accesses the project, usually ip + port + ...

Summary of xhtml block level tags

* address - address * blockquote - block quote * c...

JS implements Baidu search box

This article example shares the specific code of ...

CSS and HTML and front-end technology layer diagram

The relationship between Javascript and DOM is ve...

The Complete Guide to Grid Layout in CSS

Grid is a two-dimensional grid layout system. Wit...

Sharing tips on using vue element and nuxt

1. Element time selection submission format conve...

Gitlab practical tutorial uses git config for related configuration operations

This article introduces the content related to gi...

JavaScript CollectGarbage Function Example

First, let's look at an example of memory rel...