Question
DNS Networking redirects with Nginx to catch wildcards
What i want to do:
- Have two versions of the site, mobile and desktop.
- Force naked URI, no www visible and redirect to appropriate mobile/desktop version.
- Wildcard to catch all other gibberish and redirect to appropriate mobile/desktop version.
Desktop version: mysite.com
Mobile version: m.mysite.com
/etc/nginx/sites-available/mysite.com
server {
listen 80;
listen [::]:80;
server_name www.mysite.com;
return 301 http://mysite.com;
}
server {
listen 80;
listen [::]:80;
root /var/www/mysite.com/html;
index index.html index.htm index.nginx-debian.html;
server_name mysite.com;
location / {
try_files $uri $uri/ =404;
}
}
/etc/nginx/sites-available/m.mysite.com
server {
listen 80;
listen [::]:80;
server_name www.m.mysite.com;
return 301 http://m.mysite.com;
}
server {
listen 80;
listen [::]:80;
root /var/www/m.mysite.com/html;
index index.html index.htm index.nginx-debian.html;
server_name m.mysite.com;
location / {
try_files $uri $uri/ =404;
}
}
What I have so far
- mysite.com –> mysite.com (GOOD)
- www.mysite.com –> mysite.com (GOOD)
- test.mysite.com –> mysite.com (GOOD)
- test.www.mysite.com –> mysite.com (GOOD)
www.test.mysite.com –> mysite.com (GOOD)
m.mysite.com/ –> http://m.mysite.com/ (GOOD)
www.m.mysite.com –> m.mysite.com (GOOD)
test.m.mysite.com –> mysite.com (WRONG), should redirect to m.mysite.com
test.www.m.mysite.com –> mysite.com (WRONG), should redirect to m.mysite.com
www.test.m.mysite.com –> mysite.com (WRONG), should redirect to m.mysite.com
test.m.test.mysite.com -> m.mysite.com (GOOD)
So i’ve mostly got it working, except there seems to be some issue with the wildcard redirects for the mobile version. I’d appreciate any help/feedback.
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
×