Require 'www' for https://example.com

António P. P. Almeida appa at perusio.net
Sat Mar 23 03:01:35 UTC 2013


On 22 Mar 2013 23h44 CET, nginx-forum at nginx.us wrote:

> I am setting up a server that will be for a B2B business, and I want
> the whole site to be served as https://www.example.com/
>
> I have gotten a certificate and https://www.example.com runs just
> fine, but I can't figure out how to require https://www.example.com
> when a user tries to go to https://example.com.
>
> In reading through the nginx.org site, it seems like rewrites and if
> statements are discouraged. I did figure out how to require
> http://www.example.com/ by using the following in my server block
> file:
>
> server {
> listen [::]:80;
> server_name example.com *.example.com;
> return 301 $scheme://www.example.com$request_uri;
> }
>
> But doing something similar for 443 doesn't seem to work.

It works, but you have to add the SSL certificate and respective
key. Note that the root domain must be also in the certificate
otherwise the client will complain about the certificate, not being
able to establish endpoint authentication.

> Can someone please help me out or point to a good page on setting up
> for this?

Here's an example. It rewrites from www to the base domain. So just
switch the server names and it will work. Add also a listen directive
for port 80.

https://github.com/perusio/drupal-with-nginx/blob/D7/sites-available/example.com.conf#L101

--- appa



More information about the nginx mailing list