HTTP状态码301(永久重定向)不同Web服务器的配置方法

简介: 当用户或搜索引擎向服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中包含状态码301,以向用户表示该资源已经永久改变了位置。

@[TOC]
当用户或搜索引擎向服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中包含状态码301,以向用户表示该资源已经永久改变了位置。

301状态码通常在那些情况下使用

301状态码通常适合如下几个场景中去使用:

  • 网站内容发生更改
    如果网站中的页面被永久性地移动到其他位置,就可以使用301状态码来告诉搜索引擎,这个页面已经被永久地移动到其他位置。
  • 网站域名更改
    如果网站域名发生了更改,就可以使用301状态码来告诉搜索引擎,这个网站的域名已经更改。
  • 网站重命名
    如果网站中的某个页面被重命名,就可以使用301状态码来告诉搜索引擎,这个页面的URL已经更改。
  • 网站删除
    如果网站中的某个页面被删除,就可以使用301状态码来告诉搜索引擎,这个页面已经不存在了。
  • 网站合并
    如果两个或多个网站合并成一个新的网站,就可以使用301状态码来告诉搜索引擎,这些网站已经合并成一个新的网站。
  • 其他
    任何你想用户访问网站时,自动为用户导航到另外一个新的网站时,就可以合理配置301状态码来实现。

301永久重定向配置

Nginx配置301永久重定向

sudo vim /etc/nginx/nginx.conf
location ~ ^/old_url/(.*)$ {
   
   
    return 301 $scheme://www.domainname.com/new_url/$1;
}

需要将old_url替换为您要重定向的旧页面的URL路径,将new_url替换为新页面的URL路径,并将www.domainname.com替换为您的域名。“ :wq!”保存并关闭文件。 并重新加载Nginx配置以使更改生效:

sudo service nginx reload

Windows配置IIS301永久重定向

  1. 在IIS里把网站正常发布,例如域名为www.aaa.com。
    1. 在硬盘上建一个空文件夹。
    2. 在IIS里建一个网站,例如域名为aaa.com,指向新建的空文件夹。
    3. 在网站的主页,选择“HTTP重定向”,具体参数设置如下:
    • 勾选“将请求重定向到此目标”。
    • 重定向地址:www.aaa.com$S$Q
    • 勾选“将所有请求重定向到确切的目标(而不是相对于目标)”。
    • 状态代码:永久(301)。
      image.png

      PHP下的301重定向

      PHP重定向参考代码如下:
      <?php
      Header("HTTP/1.1 301 Moved Permanently");
      Header("Location: http://www.domainname.com"); //跳转到带www的网址
      ?>
      

Apache服务器实现301重定向

Apache服务器域名的重定向

通过VIM编辑器对配置文件进行配置:

sudo vim /etc/apache2/apache2.conf

config 配置修改参考代码如下:

<VirtualHost *:80>
    ServerName domainname.com
    ServerAlias www.domainname.com

    RewriteEngine On
    RewriteRule ^/old-path$ http://newdomainname.com/new-path [R=301,L]
</VirtualHost>
  • ServerName 和 ServerAlias 应设置为您的域名。
  • RewriteRule 行定义了重定向规则,其中 /old-path 是旧的URL路径,http://newdomainname.com/new-path 是新的目标URL。 [R=301,L] 部分指示执行永久重定向(301)并停止进一步的重写规则处理。

    保存配置文件并重新加载Apache

    保存配置文件,并重启apache2服务,使得配置生效。
    sudo systemctl reload apache2   # For Ubuntu/Debian
    

最后,验证您的301重定向是否按预期工作。您可以通过访问旧页面URL来检查是否已成功重定向到新页面。

301重定向是否违反相关法规?

301重定向是网站服务器之间的“通知”机制,而不是“访问”机制。它是一种HTTP协议的服务器端行为,是服务器告诉浏览器的一种方法,在服务器上做了某些事情之后,浏览器应该被重定向到新的URL。

根据《互联网信息服务管理办法》规定,国家对经营性互联网信息服务实行许可制度;对非经营性互联网信息服务实行备案制度。因此,网站主办者在申请网站许可或者备案之前,不得擅自从事互联网信息服务。

总之,301重定向不会违反互联网相关法规。

目录
相关文章
|
5月前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
1174 1
|
9月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
877 87
|
4月前
|
网络安全 开发工具 git
在GitLab CI中同步HTTPS仓库地址的yaml配置
最后,提交并推送 `.gitlab-ci.yml`文件到您的GitLab仓库。GitLab CI/CD将自动识别这个文件,并在每次推送到 `master`分支时执行定义的同步任务。
225 16
|
8月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
401 18
|
8月前
|
应用服务中间件 网络安全 数据安全/隐私保护
网关服务器配置指南:实现自动DHCP地址分配、HTTP服务和SSH无密码登录。
哇哈哈,道具都准备好了,咱们的魔术秀就要开始了。现在,你的网关服务器已经魔法满满,自动分配IP,提供网页服务,SSH登录如入无人之境。而整个世界,只会知道效果,不会知道是你在幕后操控一切。这就是真正的数字世界魔法师,随手拈来,手到擒来。
401 14
|
7月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
7月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
515 0
|
Linux iOS开发 MacOS
【MCP教程系列】阿里云百炼MCP全面配置指南:涵盖NPX、UVX、SSE及Streamable HTTP
本文详细介绍如何在阿里云百炼平台及Windows、Linux、MacOS系统中正确配置MCP服务的JSON文件。内容涵盖三种MCP服务配置:npx(基于Stdio)、uvx(Python工具运行)和SSE(服务器发送事件)。同时解析Streamable HTTP作为新一代传输方案的优势与应用,帮助用户掌握每个参数的具体用途及使用方法,解决配置过程中可能遇到的问题,提供完整示例和扩展信息以优化设置体验。
4769 11
|
8月前
HTTP协议探究:常用方法一网打尽
总的来说,HTTP协议的命令犹如一把钥匙,解锁了互联网世界的大门。它是规则,也是工具,了解了它,就等于掌握了互联网的一把通行证。我们每天都在用,也常常无视它,但是只有深刻理解了它,才能更好地运用它。如此,我们的互联网世界旅程就会变得更加顺畅,更加有趣。
224 14
|
10月前
|
JSON API 数据安全/隐私保护
使用curl命令在服务器上执行HTTP请求
总的来说,curl是一个非常强大的工具,它可以让你在命令行中发送各种类型的HTTP请求。通过学习和实践,你可以掌握这个工具,使你的工作更加高效。
932 30