How do I redirect http://www.example.com to http://example.com?
I am using LEMP, Nginx, Wordpress.
Qn 1: To which file should I add the below code to?
server { server_name www.example.com; return 301 $scheme://example.com$request_uri; }
I have a few files in mind (I followed your tutorials)
Qn 2: If I add the above code, must I still do the DNS part on CNAME (www and @)? Or can I skip this step?
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
thanks again!
The config looks good. Glad it’s working now! :]
Thanks FMCB and Kamal. I managed to get it to work. <br> <br>Steps I did were: <br>1) I added CNAME record (is this the DNS record you are referring to?) <br>2) I only added the 301 redirect to /etc/nginx/sites-available/default. <br>I left /etc/nginx/sites-available/wordpress untouched. <br>When I added the same code for both, I had an error. So I tried each files individually, and realised only the default file worked after I restarted nginx. <br> <br>this is my pastebin, please help me check if the code is ok. <br>http://pastebin.com/8s6n59m2 <br> <br>Thanks a lot!
Can you pastebin your current virtualhost config? You will need to add a DNS record so the browser knows what IP it should connect to.
when you open your vhost: /etc/nginx/sites-available/wordpress <br> <br>you will need to have server{ } twice. each block will have different things where the 2nd one carry the rest of the configurations. as I wrote for you above, it should be like that to redirect… <br> <br>server { <br>server_name www.domain.com; <br>rewrite ^(.) http://domain.com$1 permanent; <br>} <br> <br>server { <br>server_name domain.com; <br>#The rest of your configuration goes here# <br>} <br> <br>Adding CName record will allow your server to catch www only thus you can redirect from www to non www <br> <br>so in anyways you will have to add CName if you didn’t. <br> <br>do the same thing for the other vhost if you want to redirect it like I wrote: <br> <br>for /etc/nginx/sites-available/default: <br> <br>server { <br>server_name www.domain2.com; <br>rewrite ^(.) http://domain2.com$1 permanent; <br>} <br> <br>server { <br>server_name domain2.com; <br>#The rest of your configuration goes here# <br>} <br>
anyone knows the answer to this? thanks
Thanks for your reply! I got it to work by just by adding the CName record and without the server{…} portion. <br> <br>But what I really want to know is by adding the server{…} portion, do I still need to do the CName record? Because I actually want to do it through this method - i.e. to redirect through server {…} portion. <br> <br>If the answer is yes, I will know that such a method actually exists. and my next step would be to figure how to go about just adding the server{…} portion alone. Now I’m like a lost sheep. Because I have added CName record and it already works so i cant tell if the server {…} is actually working. <br> <br>thanks in advance!
I think you need to add www and @ CName record to make the domain catch www, <br> <br>also, I believe you need to have each vhost like the following code: <br> <br>server { <br> server_name www.domain.com; <br> rewrite ^(.*) http://domain.com$1 permanent; <br>} <br> <br>server { <br> server_name domain.com; <br> #The rest of your configuration goes here# <br>} <br> <br>for exp. look here: http://stackoverflow.com/questions/7947030/nginx-no-www-to-www-and-www-to-no-www
No need to waste time with nginx settings, simply go to your advanced DNS settings, add URL redirection from www to http://yoursite.com and set the redirection type as permanent.