-
-
Save aronpc/ee27040c5af9375b4444ea6a1cb34030 to your computer and use it in GitHub Desktop.
Automatic nginx virtual subdomains with sub-folders or sub-directories
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Automatic nginx virtual subdomains with sub-folders or sub-directories | |
# | |
# Since the original source where I found this code is now offline, I have decided to mirror it here. | |
# All credit goes to: http://web.archive.org/web/20150307193208/http://www.messaliberty.com/2010/10/automatic-nginx-virtual-subdomains-with-sub-folders-or-sub-directories | |
# | |
# Description: In my web root directory I wanted create a folder called photos, and another called | |
# music using a sftp program. Without manually going back to the config file or to the shell I like to | |
# be able to access them at photos.nginxdomain.com and music.nginxdomain.com. That is what this config does. | |
# Redirect visitors from http://nginxdomain.com/ to http://www.nginxdomain.com/ | |
server { | |
listen 80; | |
server_name nginxdomain.com; | |
rewrite ^/(.*) http://www.nginxdomain.com/$1 permanent; | |
} | |
# Serve http://www.nginxdomain.com/ | |
server { | |
listen 80; | |
server_name www.nginxdomain.com; | |
root /home/domains/nginxdomain.com/public; | |
} | |
# Automatically create subdomains based on directory existence. | |
server { | |
listen 80; | |
server_name ~^(.*)\.nginxdomain\.com$; | |
# If a directory doesn't exist... | |
if (!-d /home/domains/nginxdomain.com/public/$1) { | |
# If a client requests a subdomain but the server does not have a folder to serve, redirect back to the main site. | |
rewrite . http://www.nginxdomain.com/ redirect; | |
} | |
# Sets the correct root | |
root /home/domains/nginxdomain.com/public/$1; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment