Subdomains
Iris has the simplest known form for subdomains registration to a single application. Of course you can always use nginx or caddy for management in production.
Subdomains are separated into two categories: static and dynamic/wildcard.
Static : when you know the subdomain, i.e :
analytics.mydomain.com
Wildcard : when you don't know the subdomain but you know that it's before a particular subdomain or root domain, i.e :
user_created.mydomain.com
,otheruser.mydomain.com
like theusername.github.io
We use the Subdomain
and WildcardSubdomain
methods of an iris.Party
or iris.Application
to register subdomains.
The Subdomain
method returns a new Party
which is responsible to register routes to this specific "subdomain".
The only difference from a regular Party
is that if called from a child party then the subdomain will be prepended to the path instead of appended. So if app.Subdomain("admin").Subdomain("panel")
then the result is: "panel.admin."
.
The WildcardSubdomain
method returns a new Party
which is responsible to register routes to a dynamic, wildcard(ed) subdomain. A dynamic subdomain is a subdomain which can handle any subdomain requests. Server will accept any subdomain (if not static subdomain found) and it will search and execute the handlers of this Party
.
Example Code:
For local development you'll have to edit your hosts, for example in windows operating system open the C:\Windows\System32\Drivers\etc\hosts
file and append:
To prove that subdomains works like any other regular Party
you can also register a subdomain using the alternative method below:
There is also an iris.Application
method which allows to register a global redirection rule for subdomains as well.
The SubdomainRedirect
sets (or adds if used more than one time) a router wrapper which redirects(StatusMovedPermanently) a (sub)domain to another subdomain or to the root domain as fast as possible, before the execution of the route's handler(s).
It receives two arguments, they are the from and to/target locations, 'from' can be a wildcard subdomain as well (app.WildcardSubdomain()) 'to' is not allowed to be a wildcard for obvious reasons, 'from' can be the root domain(app) when the 'to' is not the root domain and visa-versa.
Usage
The above will redirect all http(s)://mydomain.com/%anypath% to http(s)://www.mydomain.com/%anypath%.
The Context
offers four main methods when working with subdomains that may be helpful for you.
Usage
Last updated