Nginx 中如何实现永久和临时跳转及不带 www 域名跳转带 www 域名
在网站营运过程中,我们常常会碰到须要将一个域名重定向到另一个域名的情况,这些情况可能是因为品牌升级、网站改版等诱因引起的,在Nginx中,我们可以使用301或302跳转来实现这些需求,本文将详尽介绍怎样在Nginx中实现永久(301)和临时(302)跳转的方式,以及怎样实现类似不带www域名跳转带www的域名的需求。
(图片来源网路,侵删)
1.哪些是301和302跳转?
301跳转(永久重定向)表示恳求的资源早已永久性地联通到了一个新的位置,搜索引擎会将旧的URL权重转移到新的URL上,而302跳转(临时重定向)表示恳求的资源只是暂时性地联通到了一个新的位置,搜索引擎不会将旧的URL权重转移到新的URL上。
2.Nginx实现301和302跳转的方式
在Nginx中,我们可以通过更改配置文件来实现301和302跳转,具体操作如下:
2.1实现301跳转
1、打开Nginx配置文件,一般坐落/etc/nginx/nginx.conf或/etc/nginx//。
2、在须要实现301跳转的块中,添加以下代码:
return 301 http://newurl.com$request_uri;
是新的目标URL,$表示原始恳求的URI。
假如我们要将不带www的域名跳转到带www的域名,可以添加以下代码:
server { listen 80; server_name example.com; return 301 http://www.example.com$request_uri;}
2.2实现302跳转
实现302跳转的方式与实现301跳转的方式相同,只需将301替换为302即可。
server { listen 80; server_name example.com; return 302 http://www.example.com$request_uri;}
3.Nginx实现不带www域名跳转带www的域名的方式
在Nginx中,我们可以使用指令来匹配不带www的域名,并实现跳转,具体操作如下:
1、打开Nginx配置文件。
2、在块中,添加以下代码:
server_name ~^(?!www)w+.w+$;rewrite ^(.*)$ http://www.$server_name$1 permanent;
~^(?!www)w+.w+$表示匹配不带www的域名,指令用于实现重定向。表示使用301永久重定向。
server { listen 80; server_name ~^(?!www)w+.w+$; rewrite ^(.*)$ http://www.$server_name$1 permanent;}
4.常见问题解答FAQs
Q1:怎样在Nginx中实现301和302跳转?
A1:在Nginx中,我们可以通过更改配置文件来实现301和302跳转,具体操作如下:在须要实现301或302跳转的块中,添加相应的重定向代码,实现301跳转可以使用301$;,实现302跳转可以使用302$;。
Q2:怎样在Nginx中实现不带www域名跳转带www的域名?
A2:在Nginx中,我们可以使用指令来匹配不带www的域名,并实现跳转,具体操作如下:在块中,添加以下代码:~^(?!www)w+.w+$;^(.*)$$$1;。~^(?!www)w+.w+$表示匹配不带www的域名,指令用于实现重定向。表示使用301永久重定向。