I'm attempting to redirect the root domain for both http and https in nginx to the same subdirectory (https):
So e.g.
http://example.com -> https://example.com/subdirectory
https://example.com -> https://example.com/subdirectory
As simple as this seemed to me, I'm struggling to achieve this. I've tried using variations of rewrites and return 301, but always end up with a redirect loop.
My current config (causing the loop):
server {
listen 80;
server_name example.com;
return 301 https://$server_name/subdirectory;
}
server {
listen 443 ssl spdy;
server_name example.com;
return 301 https://$server_name/subdirectory;
}
So basically, i'm trying to redirect to the same subdirectory on https from the root domain, whether the root domain is requested via http or https.
Best Answer
This configuration will do what you want:
The
= /
specifiers means a full match, so it matches only the exact root URI of the virtual server.