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

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.

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

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,237695,237695#msg-237695

www fix

server {
# www.example.com -> example.com
#server_name www.example.com;

#rewrite         ^ $scheme://example.com$request_uri? permanent;
# www.example.com -> example.com
server_name     example.com;

rewrite         ^ $scheme://www.example.com$request_uri? permanent;

}

https://github.com/kirpit/webstack/blob/master/sites/_nginx-example.com.conf

cheers.

On 22 Mar 2013 23h44 CET, [email protected] wrote:

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

On Mar 23, 2013, at 2:44 , openletter wrote:

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.

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

You have to got a certificate also for “example.com” or certificate for
two
names “www.example.com” and “example.com”.


Igor S.
http://nginx.com/services.html

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs