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重定向不会违反互联网相关法规。

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
1月前
|
存储 缓存 网络协议
Web客户/服务器程序
Web客户/服务器程序
|
2月前
|
存储 资源调度 应用服务中间件
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
32 0
|
2月前
|
网络协议 Shell 网络安全
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
167 0
|
2月前
File和FTP和HTTP软件配置
File和FTP和HTTP软件配置
|
2天前
|
网络协议 应用服务中间件 nginx
nginx 302 301 设置 url 转跳 nginx 资源重定向 nginx tcp 和 http 转发
nginx 代理后端网站,和 网站资源目录重定向到其他连接地址
24 3
|
2天前
|
网络协议 Java 应用服务中间件
HTTP协议与Tomcat在IJ中配置
本文是对自己学习JavaWeb学习的笔记的总结,添加了一些自己的东西,然后进行一次复盘,并加深一下学习的理解和印象.其中内容主要包括对http协议的详细介绍,java常见服务器的初步介绍,以及IJ旧版和新版的tomcat服务器的配置图解教程
|
4天前
|
缓存 负载均衡 安全
深入探索Nginx高性能Web服务器配置与优化
【5月更文挑战第7天】本文深入探讨了Nginx的配置与优化,重点介绍了基础配置参数如`worker_processes`、`worker_connections`和`keepalive_timeout`,以及优化策略,包括使用epoll事件驱动模型、开启gzip压缩、启用缓存、负载均衡和安全配置。此外,还提到了性能调优工具,如ab、nginx-stats和nmon,以助于提升Nginx的性能和稳定性。
|
25天前
ctfhub->web->web前置技能->HTTP协议->请求方式
ctfhub->web->web前置技能->HTTP协议->请求方式
|
1月前
|
网络协议 安全 Java
理解HTTP协议:Java Web开发的基础
【4月更文挑战第3天】本文介绍了HTTP协议的基础知识,包括其无状态、应用层协议的特性,基于请求/响应的工作模式,以及TCP连接、HTTP请求和响应的流程。HTTP方法如GET、POST、PUT等用于不同操作,状态码则表示请求结果。在Java Web开发中,理解HTTP有助于设计RESTful API、管理状态、确保安全性、优化性能和处理错误。HTTP协议的深入理解对构建高效、健壮和安全的Web应用至关重要。
|
1月前
|
Kubernetes Ubuntu 搜索推荐
containerd配置HTTP私仓
在240个字符内,以下是摘要: 在Ubuntu 22.04上,配置K8S基础环境后,安装Docker并设置镜像加速,接着部署私有的Harbor仓库(HTTP访问)。要将镜像推送到Harbor,需编辑Docker的`daemon.json`加入不安全注册表,然后重启服务。通过`docker login`、`docker tag`和`docker push`推送到Harbor。此外,配置`containerd`以信任Harbor的HTTP地址,更新`/etc/containerd/certs.d/`,重启服务后,使用`ctr`拉取和推送镜像至Harbor。
containerd配置HTTP私仓