301 vs 302 Redirection:
301 permanent redirection:
Search Engine: When a search engine gets 301 status code in the response header of a webpage, it understands that this webpage no longer exists so it takes the new URL and replace the indexed URL with the new one and also modifies pagerank
So search engine refreshes all indexed URL that no longer exist (301 found) with the new URL, this will retain your old webpage traffic, pagerank and divert it to the new one (you will not lose you traffic of old webpage).
Browser: if a browser finds 301 status code then it caches the mapping of the old URL with the new URL, the client/browser will not attempt to request the original location but use the new location from now on unless the cache is cleared.
302 temporary redirection:
Search Engine: Here there will not be any modifications of page rank for old site as 302 specified that the page is redirected temporarily.
Browser: The browser will not change cache mapping of old url with new url as its temporary redirection.
How to to redirection in Nginx:
Its very simple to implement redirection in nginx, only thin you have to do is change your project's nginx configuration located at /etc/nginx/site-available/ directory as shown below:
Redirect Non-www to www Redirect:
Permanent(301) redirection
server {
listen 80;
server_name domain1.com;
return 301 $scheme://www.domain1.com$request_uri;
}
Temporary(302) redirection:
server {
listen 80;
server_name domain1.com;
return 302 $scheme://www.domain1.com$request_uri;
}
Redirect www to non-www Redirect:
Permanent(301) redirection
server {
listen 80;
server_name www.domain1.com;
return 301 $scheme://domain1.com$request_uri;
}
Temporary(302) redirection:
server {
listen 80;
server_name www.domain1.com;
return 302 $scheme://domain1.com$request_uri;
}
Now check the configuration for errors, run
nginx -t
if no errors, restart nginx:
service nginx restart
So, its really that easy to redirect using nginx configuration