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月前
|
网络协议 Shell 网络安全
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
164 0
|
1月前
File和FTP和HTTP软件配置
File和FTP和HTTP软件配置
|
6天前
|
XML Java 数据格式
Servlet 教程 之 Servlet 服务器 HTTP 响应 3
`Servlet`教程示例展示了如何创建一个HTTP响应,使用`@WebServlet(&quot;/Refresh&quot;)`的`Refresh`类继承`HttpServlet`。在`doGet`方法中,设置了`Refresh`头以每5秒自动刷新,并用`setContentType(&quot;text/html;charset=UTF-8&quot;)`设定内容类型。还使用`Calendar`和`SimpleDateFormat`获取并格式化当前时间显示。相应的`web.xml`配置指定了Servlet路径。当访问此Servlet时,页面将每5秒更新一次显示的系统时间。
16 4
|
5天前
|
Java
Servlet 教程 之 Servlet HTTP 状态码 3
该Servlet教程聚焦于HTTP状态码,示例展示如何向客户端发送407错误,提示&quot;Need authentication!!!&quot;. 类名为`showError`的Servlet扩展自`HttpServlet`,重写`doGet`和`doPost`方法。当遇到GET或POST请求时,它会设置HTTP状态码为407并附带错误信息。
11 2
|
11天前
|
运维 Java 应用服务中间件
Tomcat详解(七)——Tomcat使用https配置实战
Tomcat详解(七)——Tomcat使用https配置实战
28 4
|
15天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
18天前
|
域名解析 网络协议 应用服务中间件
阿里云SSL证书配置(HTTPS证书配置)
该内容是一个关于如何在阿里云上准备和购买SSL证书,以及如何为网站启用HTTPS的步骤指南。首先,需要注册并实名认证阿里云账号,然后在SSL证书控制台选择证书类型、品牌和时长进行购买。申请证书时填写域名信息,并进行DNS验证,这包括在阿里云域名管理板块添加解析记录。完成验证后提交审核,等待证书审核通过并下载Nginx格式的证书文件。最后,将证书配置到网站服务器以启用HTTPS。整个过程涉及账户注册、实名认证、证书购买、DNS设置和证书下载及安装。
87 0
|
20天前
|
应用服务中间件 网络安全 nginx
nginx配置https访问
nginx配置https访问
34 0
|
29天前
|
应用服务中间件 nginx
nginx配置https和直接访问静态文件的方式
nginx配置https和直接访问静态文件的方式
28 3

热门文章

最新文章