Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NGINX Redirect http to https and non-www to ww

I'm setting up an nginx server with an SSL.

The domain with the ssl is www.mydomain.com

I want to redirect all requests from:

http://mydomain.com, http://www.mydomain.com, & https://mydomain.com to

https://www.mydomain.com

I have the following server blocks setup currently:

server{   listen 443 ssl;   root /www/mydomain.com/;    ssl_certificate /ssl/domain.crt;   ssl_certificate /ssl/domain.key;   .   .    . }  server{   listen 80;   server_name mydomain.com;   return 301 https://www.mydomain.com$request_uri; }  server{   listen 80;   server_name www.mydomain.com;   return 301 https://www.mydomain.com$request_uri; }  server{   listen ssl 443;   server_name mydomain.com;   return 301 https://www.mydomain.com$request_uri; } 

This currently does not work, but I don't understand why not. I can get a combination of either http -> https working or no-www to -> www working, but mixing them as above does not work.

like image 706
on3al Avatar asked Jan 14 '14 06:01

on3al


1 Answers

The ssl redirect won't work if your ssl certificate doesn't support the non-www domain. The config is correct but can be reduced to just 1 redirect server

Also don't forget to reload nginx sudo service nginx reload

server {   listen 80;   listen 443 ssl;   server_name example.com;   # add ssl settings   return 301 https://www.example.com$request_uri; } 
like image 88
Mohammad AbuShady Avatar answered Oct 17 '22 01:10

Mohammad AbuShady