Nginx 中如何实现永久和临时跳转及不带 www 域名跳转带 www 域名

在网站营运过程中,我们常常会碰到须要将一个域名重定向到另一个域名的情况,这些情况可能是因为品牌升级、网站改版等诱因引起的,在Nginx中,我们可以使用301或302跳转来实现这些需求,本文将详尽介绍怎样在Nginx中实现永久(301)和临时(302)跳转的方式,以及怎样实现类似不带www域名跳转带www的域名的需求。

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永久重定向。

相关新闻

QQ渠道

技术支持:QQ2854399

关注公众号
关注公众号
微信客服
返回顶部