Why does return 301 send me to a 414 Request?

September 11, 2018 342 views
Nginx Ubuntu 16.04

I have a main domain and a subdomain. I want all traffic to redirect to my subdomain. I have been trying to use return 301 and also rewrite in my nginx.conf for my default domain, but every time I do instead of the url being replaced with my subdomain; the subdomain is added on to the end of the url.

For example:
rewrite ^/(.*)$ https://domain2.com/$1 permanent; is the rewrite command I am using
and when I type in my domain the url becomes
https://domain1.com/domain2.com/domain2.com/domain2.com
forever and ever until I get the 414 request.

Any idea what is going on?

1 Answer

Instead of using a rewrite rule you can instead use the following server declaration in your nginx.conf to make it cleaner and simpler:

server {
    server_name example.com;
    return 301 $scheme://subdomain.example.com$request_uri;
}

Or redirect one domain to another domain:

server {
    server_name domain1.com;
    return 301 $scheme://domain2.com$request_uri;
}
Have another answer? Share your knowledge.