Linux下Nginx设置301重定向的方法,包括域名、目录等设置方法
大家好,今天小编关注到一个比较有意思的话题,就是关于Linux下Nginx设置301重定向的方法包括域名、目录等设置方法,于是小编就整理了几个相关介绍详细的解答,让我们一起看看吧。
- 本文目录导读:
- 1、 前言
- 2、 什么是301重定向?
- 3、 设置域名级别的301重定向
- 4、 设置目录级别的301重定向
- 5、 总结
前言
在网站运营中,经常会遇到需要修改URL的情况。例如更换域名、调整网站架构等。这时候就需要使用301重定向来保证原有链接能够正确地指向新的页面。本文将介绍如何在Linux下使用Nginx进行301重定向设置。
什么是301重定向?
HTTP状态码中,301表示永久性移动(Permanently Moved),即请求的资源已被分配了新的URI地址,并且以后应从新地址访问。当浏览器发现服务器返回的状态码为301时,它会自动跳转到新地址。
设置域名级别的301重定向
假设我们要将旧域名www.old.com全部指向新域名www.new.com:
1. 编辑Nginx配置文件:sudo vim /etc/nginx/sites-available/default
2. 在server块内添加以下代码:
```
server {
listen 80;
server_name www.old.com;
return 301 $scheme://www.new.com$request_uri;
}
其中listen表示监听端口号,在这里是80;server_name表示要匹配的主机名称,在这里是www.old.com;return则用于返回一个特殊状态码和头信息给客户端浏览器,并让它自动跳转到新地址。
3. 保存并退出配置文件:wq!
4. 重启Nginx服务:sudo service nginx restart
设置目录级别的301重定向
假设我们要将旧网站架构中的所有文章页面都指向新网站架构中对应的页面:
location /old_dir/ {
rewrite ^/old_dir/(.*)$ $1 permanent;
其中location表示匹配URL路径,这里是匹配以/old_dir/开头的路径;rewrite则用于实现URL重写功能,把旧目录下的URI地址映射到新目录下对应的URI地址,并返回301状态码。
总结
使用Linux下Nginx设置301重定向可以帮助我们有效地处理各种链接修改情况。无论是域名级别还是目录级别,只需简单几步即可完成设置。建议在进行任何链接修改前备份好原有数据和配置文件。