Is it possible to replace http redirects with nginx redirects?
I want to rewrite all http requests on my web server to become https requests i started with the following
server { listen 80; location / { rewrite ^(.*) https://mysite.com$1 permanent; } ...
One Problem is that this strips away any subdomain information (e.g., node1.mysite.com/folder), how could I rewrite the above to reroute everything to https and maintain the sub-domain?
Best Answer
Correct way in new versions of nginx
Turn out my first answer to this question was correct at certain time, but it turned into another pitfall - to stay up to date please check Taxing rewrite pitfalls
I have been corrected by many se users, so the credit goes to them, but more importantly, here is the correct code.
server {
listen 80;
server_name my.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name my.domain.com;
# add Strict-Transport-Security to prevent man in the middle attacks
add_header Strict-Transport-Security "max-age=31536000" always;
[....]
}