<div>Hi all,</div><div><br></div><div>  i am running nginx version: nginx/1.12.0.i got following server block config as below, all request match regular expression work well,but request to server s01.example.com return 404.what's wrong? i googled for a while,most of the article said,it first try to match literal string ,then wildcard,and regular expression last. </div><div><br></div><div>------------------------------</div><div><div>  server {</div><div>    listen 80;</div><div>    server_name _;</div><div>    access_log /data/wwwlogs/access_nginx.log combined;</div><div>    root /data/wwwroot/public_html;</div><div>    index index.html index.htm index.php;</div><div>    #error_page 404 /404.html;</div><div>    #error_page 502 /502.html;</div><div>    location /nginx_status {</div><div>      stub_status on;</div><div>      access_log off;</div><div>      allow 127.0.0.1;</div><div>      deny all;</div><div>    }</div><div>    location ~ [^/]\.php(/|$) {</div><div>      #fastcgi_pass remote_php_ip:9000;</div><div>      fastcgi_pass unix:/dev/shm/php-cgi.sock;</div><div>      fastcgi_index index.php;</div><div>      include fastcgi.conf;</div><div>    }</div><div>    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {</div><div>      expires 30d;</div><div>      access_log off;</div><div>    }</div><div>    location ~ .*\.(js|css)?$ {</div><div>      expires 7d;</div><div>      access_log off;</div><div>    }</div><div>    location ~ /\.ht {</div><div>      deny all;</div><div>    }</div><div>  }</div></div><div><br></div><div><br></div><div><div>server {</div><div>    listen [ip1]:80;</div><div>    server_name ~^(?<subdomain>[a-z0-9]+)\.(?<domain>[a-z0-9\-]+)\.(?<domext>[a-z]+);</div><div>    index index.html index.php;</div><div><br></div><div>    root /home/$domain.$domext/$subdomain;</div><div>    location / {</div><div>        try_files $uri $uri/ @apache =404;</div><div>    }</div><div><br></div><div>    location ~ (.*)\.html$ {</div><div>        if (!-f '$document_root/$uri') {</div><div>          rewrite /(.*)\.html$ /$1.php last;</div><div>        }</div><div>        try_files $uri @apache =404;</div><div>    }</div><div><br></div><div>    location @apache {</div><div>        fastcgi_pass unix:/dev/shm/php-cgi.sock;</div><div>        fastcgi_index index.php;</div><div>        include fastcgi_params;</div><div>        fastcgi_split_path_info ^(.+\.php)(/.+)$;</div><div>        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;</div><div>    }</div><div>    location ~ .*\.(php|php5|cgi|pl)$ {</div><div>        fastcgi_pass unix:/dev/shm/php-cgi.sock;</div><div>        fastcgi_index index.php;</div><div>        include fastcgi_params;</div><div>        fastcgi_split_path_info ^(.+\.php)(/.+)$;</div><div>        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;</div><div>    }</div><div>    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {</div><div>      expires 30d;</div><div>      access_log off;</div><div>    }</div><div>    location ~ .*\.(js|css)?$ {</div><div>      expires 7d;</div><div>      access_log off;</div><div>    }</div><div>    location ~ /\.ht {</div><div>      deny all;</div><div>    }</div><div>}</div><div> server {</div><div>    listen [ip2]:80;</div><div>    #server_name ~^(?<subdomain>[a-z0-9]+).(?<domain>[a-z0-9.]+);</div><div>    server_name ~^(?<subdomain>[a-z0-9]+)\.(?<domain>[a-z0-9\-]+)\.(?<domext>[a-z]+);</div><div>    #server_name ~^(?<subdomain>[a-z0-9]+).com;</div><div>    #access_log off;</div><div>    index index.html index.php;</div><div><br></div><div>    root /ip100/$domain.$domext/$subdomain;</div><div>    #add_header aa $document_root;</div><div>    location / {</div><div>        try_files $uri $uri/ @apache =404;</div><div>    }</div><div><br></div><div>    location ~ (.*)\.html$ {</div><div>        if (!-f '$document_root/$uri') {</div><div>          rewrite /(.*)\.html$ /$1.php last;</div><div>        }</div><div>        try_files $uri @apache =404;</div><div>    }</div><div><br></div><div>    location @apache {</div><div>        fastcgi_pass unix:/dev/shm/php-cgi.sock;</div><div>        fastcgi_index index.php;</div><div>        include fastcgi_params;</div><div>        fastcgi_split_path_info ^(.+\.php)(/.+)$;</div><div>        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;</div><div>    }</div><div>    location ~ .*\.(php|php5|cgi|pl)$ {</div><div>        fastcgi_pass unix:/dev/shm/php-cgi.sock;</div><div>        fastcgi_index index.php;</div><div>        include fastcgi_params;</div><div>        fastcgi_split_path_info ^(.+\.php)(/.+)$;</div><div>        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;</div><div>    }</div><div>    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {</div><div>      expires 30d;</div><div>      access_log off;</div><div>    }</div><div>    location ~ .*\.(js|css)?$ {</div><div>      expires 7d;</div><div>      access_log off;</div><div>    }</div><div>    location ~ /\.ht {</div><div>      deny all;</div><div>    }</div><div>    #access_log  /home/wwwlogs/$subdomain.$domain.com_access.log access;</div><div>    #error_log  /home/wwwlogs/subdomain.$domain.com_error.log  error;</div><div>}</div><div><br></div><div> server {</div><div>    listen [ip3]:80;</div><div>    server_name ~^(?<subdomain>[a-z0-9]+)\.(?<domain>[a-z0-9\-]+)\.(?<domext>[a-z]+);</div><div>    index index.html index.php;</div><div><br></div><div>    root /ip155/$domain.$domext/$subdomain;</div><div>    #add_header aa $document_root;</div><div>    location / {</div><div>        try_files $uri $uri/ @apache =404;</div><div>    }</div><div><br></div><div>    location ~ (.*)\.html$ {</div><div>        if (!-f '$document_root/$uri') {</div><div>          rewrite /(.*)\.html$ /$1.php last;</div><div>        }</div><div>        try_files $uri @apache =404;</div><div>    }</div><div><br></div><div>    location @apache {</div><div>        fastcgi_pass unix:/dev/shm/php-cgi.sock;</div><div>        fastcgi_index index.php;</div><div>        include fastcgi_params;</div><div>        fastcgi_split_path_info ^(.+\.php)(/.+)$;</div><div>        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;</div><div>    }</div><div><div>    location ~ .*\.(php|php5|cgi|pl)$ {</div><div>        fastcgi_pass unix:/dev/shm/php-cgi.sock;</div><div>        fastcgi_index index.php;</div><div>        include fastcgi_params;</div><div>        fastcgi_split_path_info ^(.+\.php)(/.+)$;</div><div>        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;</div><div>    }</div><div>    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {</div><div>      expires 30d;</div><div>      access_log off;</div><div>    }</div><div>    location ~ .*\.(js|css)?$ {</div><div>      expires 7d;</div><div>      access_log off;</div><div>    }</div><div>    location ~ /\.ht {</div><div>      deny all;</div><div>    }</div><div>    #access_log  /home/wwwlogs/$subdomain.$domain.com_access.log access;</div><div>    #error_log  /home/wwwlogs/subdomain.$domain.com_error.log  error;</div><div>}</div></div></div><div><br></div><div><div>server {</div><div>  listen [ip3]:80;</div><div>  server_name s01.example.com;</div><div>  access_log off;</div><div>  index index.html index.htm index.php;</div><div>  root /data/ytginc.com/public;</div><div>  rewrite /([a-z]+)$ /index.php/$1;</div><div>  rewrite /([a-z0-9]+)/([a-z]+)/$ /index.php/$1/$2;</div><div><br></div><div>  location / {</div><div>    try_files $uri @apache;</div><div>  }</div><div>  location @apache {</div><div>include fastcgi_conf;</div><div>  }</div><div>  location ~ .*\.(php|php5|cgi|pl)?$ {</div><div>include fastcgi_conf;</div><div>  }</div><div>  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {</div><div>    expires 30d;</div><div>    access_log off;</div><div>  }</div><div>  location ~ .*\.(js|css)?$ {</div><div>    expires 7d;</div><div>    access_log off;</div><div>  }</div><div>  location ~ /\.ht {</div><div>    deny all;</div><div>  }</div><div>}</div></div><div><br></div><div><br></div>