Title: Subdirectory Multisite using NginX: https only?
Last modified: February 12, 2018

---

# Subdirectory Multisite using NginX: https only?

 *  [IanWaring](https://wordpress.org/support/users/ianwaring/)
 * (@ianwaring)
 * [8 years, 3 months ago](https://wordpress.org/support/topic/subdirectory-multisite-using-nginx-https-only/)
 * I’m using the NginX helper plugin, have my core Ubuntu 16.04 [http://www.software-enabled.com](http://www.software-enabled.com)
   site running fine, but don’t appear to be able to get the NginX rewrite or virtual
   hosts set up right to show the content of my 7 subdirectory sites in my network.
 * I have got Lets Encrypt Certs and the https: redirects working for the main site
   and for the first of my seven subsites (wwww.ianwaring.com), but just get the
   NginX welcome page for that site – and no content.
 * Is there a tutorial anywhere that could help me sort it? Heads a jumble and i’m
   sure it’s because i’m over thinking it! Site was working fine using 12.04 on 
   Apache, albeit without https connects.
 * The page I need help with: _[[log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fsubdirectory-multisite-using-nginx-https-only%2F%3Foutput_format%3Dmd&locale=en_US)
   to see the link]_

Viewing 1 replies (of 1 total)

 *  Thread Starter [IanWaring](https://wordpress.org/support/users/ianwaring/)
 * (@ianwaring)
 * [8 years, 3 months ago](https://wordpress.org/support/topic/subdirectory-multisite-using-nginx-https-only/#post-9966137)
 * sites-available file looks like this:
 *     ```
       ##
       # You should look at the following URL's in order to grasp a solid understanding
       # of Nginx configuration files in order to fully unleash the power of Nginx.
       # http://wiki.nginx.org/Pitfalls
       # http://wiki.nginx.org/QuickStart
       # http://wiki.nginx.org/Configuration
       #
       # Generally, you will want to move this file somewhere, and start with a clean
       # file but keep this around for reference. Or just disable in sites-enabled.
       #
       # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
       ##
   
       #map $http_host $blogid {
       #    default 0;
       #    include /var/www/html/wp-content/uploads/nginx-helper/map.conf;
       #}
   
       map $uri $blogname{
           ~^(?P<blogpath>/[^/]+/)files/(.*)       $blogpath ;
       }
   
       map $blogname $blogid{
           default -999;
           include /var/www/html/wp-content/uploads/nginx-helper/map.conf;
       }
   
       #
       # Default server configuration
       #
   
       server {
           listen 80;
           listen 443 ssl http2;
   
           server_name software-enabled.com www.software-enabled.com 139.59.187.99;
   
           if ( $scheme = "http") {
               return 301 https://$server_name$request_uri;
           }
   
           root /var/www/html;
           index index.php index.html index.htm index.nginx-debian.html;
   
           # ESSENTIAL : no favicon logs
           location = /favicon.ico { log_not_found off; access_log off; }
   
           # ESSENTIAL : robots.txt
           location = /robots.txt { log_not_found off; access_log off; allow all; }
   
           # ESSENTIAL : Configure 404 Pages
           error_page 404 /404.html;
   
           # ESSENTIAL : Configure 50x Pages
           error_page 500 502 503 504 /50x.html;
       	location = /50x.html {
       		root /usr/share/nginx/html;
       	}
   
           # PERFORMANCE : Set expires headers for static files and turn off logging.
           location ~* ^.+\.(js|css|swf|xml|txt|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|r
       ss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav
       |bmp|rtf)$ {
               access_log off; log_not_found off; expires 30d;
           }
   
           # SECURITY : Deny all attempts to access PHP Files in the uploads directory
           location ~* /(?:uploads|files)/.*\.php$ {
               deny all;
           }
   
           #
           # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
           #
           location ~ \.php$ {
       	include snippets/fastcgi-php.conf;
       	fastcgi_pass unix:/run/php/php7.0-fpm.sock;
       	}
   
           # Nginx Rewrite rules attempt by Ian W
   
           location / {
       	try_files $uri $uri/ /index.php?$args;
           }
   
           location ~ ^/files/(.*)$ {
               try_files /wp-content/blogs.dir/$blogid/$uri /wp-includes/ms-files.php?f
       ile=$1 ;
                access_log off; log_not_found off; expires max;
               }
   
           location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
       	 expires 24h;
       	 log_not_found off;
               }
   
           location ^~ /blogs.dir {
       	 internal;
       	 alias /var/www/html/wp-content/blogs.dir ;
       	 access_log off; log_not_found off;      expires max;
               }
   
           if (!-e $request_filename) {
       	 rewrite /wp-admin$ $scheme://$host$uri/ permanent;
       	 rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
       	 rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
               }
   
           # End of Rewrite Code!
   
           # deny access to .htaccess files, if Apache's document root
           # concurs with nginx's one
           #
           location ~ /\.ht {
       		deny all;
           }
   
           access_log  /var/log/nginx/$host-access.log;
           error_log   /var/log/nginx/wpms-error.log;
   
           ssl_certificate /etc/letsencrypt/live/software-enabled.com/fullchain.pem; # 
       managed by Certbot
           ssl_certificate_key /etc/letsencrypt/live/software-enabled.com/privkey.pem; 
       # managed by Certbot
           include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
           ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
   
       }
   
       #
       # Virtual Host configuration for ianwaring.com/www.ianwaring.com
       #
       server {
           listen 80;
           listen 443 ssl http2;
   
           server_name ianwaring.com www.ianwaring.com;
   
           if ( $scheme = "http") {
               return 301 https://$server_name$request_uri;
           }
   
       #    root /ianwaring/;
       #    index index.php;
   
           location ~ ^(/[^/]+/)?files/(?<rt_file>.+) {
       	try_files /wp-content/blogs.dir/$blogid/files/$rt_file /wp-includes/ms-f
       iles.php?file=$rt_file ;
       	access_log off;	log_not_found off; expires max;
           }
   
       #    location / {
       #      try_files $uri $uri/ /index.php?$args;
       #    }
   
       #    location ~ ^/files/(.*)$ {
       #      try_files /wp-content/blogs.dir/$blogid/$uri /wp-includes/ms-files.php?fi
       le=$1 ;
       #      access_log off; log_not_found off; expires max;
       #    }
   
       #    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
       #	expires 24h;
       #	log_not_found off;
       #    }
   
       #   location ^~ /blogs.dir {
       #	internal;
       #	alias /var/www/html/wp-content/blogs.dir ;
       #	access_log off; log_not_found off;      expires max;
       #    }
   
           if (!-e $request_filename) {
       	rewrite /wp-admin$ $scheme://$host$uri/ permanent;
       	rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
       	rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
           }
   
           access_log  /var/log/nginx/$host-access.log;
           error_log   /var/log/nginx/wpms-error.log;
   
           ssl_certificate /etc/letsencrypt/live/ianwaring.com/fullchain.pem; # managed
        by Certbot
           ssl_certificate_key /etc/letsencrypt/live/ianwaring.com/privkey.pem; # manag
       ed by Certbot
   
       }
       ```
   

Viewing 1 replies (of 1 total)

The topic ‘Subdirectory Multisite using NginX: https only?’ is closed to new replies.

## Tags

 * [nginx](https://wordpress.org/support/topic-tag/nginx/)
 * [ubuntu](https://wordpress.org/support/topic-tag/ubuntu/)

 * In: [Networking WordPress](https://wordpress.org/support/forum/multisite/)
 * 1 reply
 * 1 participant
 * Last reply from: [IanWaring](https://wordpress.org/support/users/ianwaring/)
 * Last activity: [8 years, 3 months ago](https://wordpress.org/support/topic/subdirectory-multisite-using-nginx-https-only/#post-9966137)
 * Status: not resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
