Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何在CentOS 7上配置Apache以使用自定义错误页面

如何在CentOS 7上配置Apache以使用自定义错误页面

原创
作者头像
谢鸢
修改于 2018-09-21 01:55:52
修改于 2018-09-21 01:55:52
1.9K00
代码可运行
举报
运行总次数:0
代码可运行

介绍

Apache是世界上最受欢迎的Web服务器。它功能强大,功能丰富且灵活。在设计网页时,自定义用户看到的每条内容通常都很有帮助。包括他们请求不可用内容时的错误页面。在本教程中,我们将演示如何配置Apache以在CentOS 7上使用自定义错误页面。

准备

要开始使用本教程,您需要具有一台可以使用sudo权限的非root账号的CentOS服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。您还需要在系统上安装Apache。按照本教程的第一步开始学习如何进行设置。

创建自定义错误页面

我们将为了演示创建一些自定义错误页面,但您的自定义页面显然会有所不同。

我们将自定义错误页面放在CentOS的Apache安装设置其默认文档根目录的/var/www/html目录中。我们将为404错误调用一个custom_404.html页面,调用一个500级错误页面custom_50x.html。如果您只是测试,可以使用以下行。或者将您自己的内容放在以下位置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo "<h1 style='color:red'>Error 404: Not found :-(</h1>" | sudo tee /var/www/html/custom_404.html
echo "<p>I have no idea where that file is, sorry.  Are you sure you typed in the correct URL?</p>" | sudo tee -a /var/www/html/custom_404.html
echo "<h1>Oops! Something went wrong...</h1>" | sudo tee /var/www/html/custom_50x.html
echo "<p>We seem to be having some technical difficulties. Hang tight.</p>" | sudo tee -a /var/www/html/custom_50x.html

我们现在有两个自定义错误页面,我们可以在客户端请求导致不同错误时提供这些页面

配置Apache以使用错误页面

现在,我们只需要告诉Apache,只要出现正确的错误条件,就应该使用这些页面。我们可以在Apache读取配置片段的目录中创建一个新的配置文件/etc/httpd/conf.d。我们将调用新文件custom_errors.conf

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/httpd/conf.d/custom_errors.conf

我们现在可以将Apache指向我们的自定义错误页面。

将错误页面直接指向正确的自定义页面

我们可以使用该ErrorDocument指令将每种类型的错误与关联的错误页面相关联。基本上,我们只需将每个错误的http状态代码映射到我们想要在其发生时提供的页面。

对于我们的示例,映射将如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ErrorDocument 404 /custom_404.html
ErrorDocument 500 /custom_50x.html
ErrorDocument 502 /custom_50x.html
ErrorDocument 503 /custom_50x.html
ErrorDocument 504 /custom_50x.html

仅发生此更改就足以在发生指定错误时提供自定义错误页面。

但是,我们将添加一组额外的配置,以便客户端无法直接请求我们的错误页面。这可以防止页面文本引用错误的某些奇怪情况,但http状态为“200”(表示请求成功)。

直接请求错误页面时响应404

要实现此行为,我们需要为每个自定义页面添加一个Files块。在里面,我们可以测试是否设置了环境变量REDIRECT_STATUS。只应在ErrorDocument指令处理请求时设置此项。如果环境变量为空,我们将发出404错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ErrorDocument 404 /custom_404.html
ErrorDocument 500 /custom_50x.html
ErrorDocument 502 /custom_50x.html
ErrorDocument 503 /custom_50x.html
ErrorDocument 504 /custom_50x.html
​
<Files "custom_404.html">
    <If "-z %{ENV:REDIRECT_STATUS}">
        RedirectMatch 404 ^/custom_404.html$
    </If>
</Files><Files "custom_50x.html">
    <If "-z %{ENV:REDIRECT_STATUS}">
        RedirectMatch 404 ^/custom_50x.html$
    </If>
</Files>

当客户端直接请求错误页面时,将发生404错误,因为未设置正确的环境变量。

设置500级错误的测试

我们可以通过请求不存在的内容轻松生成404错误来测试我们的配置。要测试500级错误,我们必须设置一个虚拟代理传递,以便我们可以确保返回正确的页面。

ProxyPass指令添加到文件的底部。在本地计算机上发送/proxytest到端口9000的请求(没有运行服务):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ErrorDocument 404 /custom_404.html
ErrorDocument 500 /custom_50x.html
ErrorDocument 502 /custom_50x.html
ErrorDocument 503 /custom_50x.html
ErrorDocument 504 /custom_50x.html
​
<Files "custom_404.html">
    <If "-z %{ENV:REDIRECT_STATUS}">
        RedirectMatch 404 ^/custom_404.html$
    </If>
</Files><Files "custom_50x.html">
    <If "-z %{ENV:REDIRECT_STATUS}">
        RedirectMatch 404 ^/custom_50x.html$
    </If>
</Files>
​
ProxyPass /proxytest "http://localhost:9000"

完成后保存并关闭文件。

重新启动Apache并测试您的页面

输入以下命令测试配置文件中的语法错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apachectl configtest

解决报告的任何问题。当您的文件不包含语法错误时,请输入以下命令重启Apache:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl restart httpd

现在,当您转到服务器的域或IP地址并请求不存在的文件时,您应该看到我们设置的404页面:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://server_domain_or_IP/thiswillerror

当您转到我们为虚拟代理通行证设置的位置时,我们将在我们的自定义500级页面上收到“503 service unavailable”错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://server_domain_or_IP/proxytest

您现在可以返回并从Apache配置中删除伪代理传递行。

结论

您现在为您的网站提供了自定义错误页面。即使遇到问题,这是一种简化用户体验个性化的方法。给这些页面一个改进的建议是,设置包含可以获取帮助或更多信息的访问链接。请确保即使发生相关错误也可以访问页面的目标链接。

想要了解更多Linux开源信息教程,请前往腾讯云+社区学习更多知识。

参考文献:《How To Configure Apache to Use Custom Error Pages on CentOS 7》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何在Ubuntu 14.04上配置Apache以使用自定义错误页面
Apache是世界上最受欢迎的Web服务器。它功能强大,功能丰富且灵活。在设计网页时,有助于自定义那些客户将看的所有内容,当然这些内容也包括他们请求不可用内容时的错误页面。在本指南中,我们将演示如何配置Apache从而在Ubuntu 14.04上使用自定义错误页面。
新巴子
2018/09/25
1.6K0
Nginx学习日志(四)自定义404,500,502,503等错误页面
通常在项目当中会自定义项目的错误界面,当请求不对或者请求错误什么的就会返回一个对用户比较友好的提示界面。
海加尔金鹰
2020/06/09
5.2K0
如何在CentOS 7上配置Nginx以使用自定义错误页面
Nginx是一款高性能的Web服务器,能够以灵活性和强大的功能提供内容。在设计网页时,自定义用户将看到的每条内容通常很有帮助。这包括他们请求不可用内容时的错误页面。在本指南中,我们将演示如何配置Nginx以在CentOS 7上使用自定义错误页面。
物花无语
2018/09/21
2.2K0
SpringBoot自定义错误页面
Spring Boot以一种新的微服务的方式来替代以Spring Framework构建项目的传统方式,我已经计划在后续的项目开发中使用它。它已经帮我们做了90%的工作,剩下10%的工作需要我们自己去
似水的流年
2018/04/17
1.5K0
SpringBoot自定义错误页面
Apache常用配置-运维笔记
===========================.htaccess文件配置笔记=========================== .htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过对.htaccess文件进行设置,可以帮我们实现:网页301重定向、自定义400/403/404/500错误页面、改变文件扩展名、允许/阻止指定IP用户访问、禁止目录列表、配置默认文档等功能,可以说是功能非常强大。
洗尽了浮华
2018/10/22
2.8K0
WordPress || .htaccess 文件使用手册
[errorbox]文章转载自:https://c7sky.com/htaccess-guide.html[/errorbox]
w候人兮猗
2020/07/01
2.3K0
一文教你学会使用Nginx
前段时间,了不起给大家说过如果使用 Docker 发布自己的后端项目,也就不再使用 Jar 包进行项目的发版操作,但是这其中就又涉及到了前端如何发版,为什么这么说,因为资深前端开发,可能知道各种发版内容等,但是对于一般的前端开发来说,走到build后,就已经算是比较不错了,接下来如果没有运维的话,那么在不使用 jekins 的情况下,就只能是后端来进行发版了,今天我们讲讲这个docker 是如何发布前端应用的。
Java极客技术
2024/01/02
2580
一文教你学会使用Nginx
怎么自定义服务器的404,如何自定义404页面
404错误页面是WWW网站访问比较经常出现的错误。大家最熟悉的也是最常见的出错提示:404 not found。404页面就是当用户输入了错误的链接时,返回的页面。而默认的404错误页面呆板麻木,让访问者感觉很挫败,可能会直接离开您的网站。
全栈程序员站长
2022/09/18
1.7K0
nginx自定义错误页
文章目录 自定义错误页 1.为每种类型的错误设置单独的处理方式 2.利用在线资源进行处理错误 3.更改晌应状态码 4.设置错误页面案例 自定义错误页 在网站访问过程中,经常会遇见各种各样的错误,如找不到访问的页面则会提示 404 Not Found 错误,没有访问权限会提示 403 Forbidden 等,对于普通人而言,这样的提示界面 并不友好。在 Nginx 的主配置文件中,给出了以下的处理方式。 error_page 500 502 503 504 /Sox.html; 在上述配置中, error
兮动人
2021/06/11
2.9K0
nginx自定义错误页
.htaccess 文件使用手册
什么是 .htaccess 文件? 概述来说,htaccess 文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置。 通过 htaccess 文件,可以帮我们实现:网页 301 重定向、自定义 404 错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。 理解 WordPress 的 htaccess # BEGIN WordPress #这是一行注释,表示 WordPress 的 htaccess 从这里开始 #如果 Apache
沈唁
2018/05/24
5.4K1
【Nginx07】Nginx学习:HTTP核心模块(四)错误页面与跳转
最最核心的部分学习完了,但其实还有更多的内容要等待着我们探索。今天我们先来看到的就是关于错误页面的设置以及 301、302 跳转相关的内容。这两块内容都有一个特点,那就是页面或明显地,或不明显地产生了跳转变化,显示的都不是本来我们应该要得到的那个链接的页面。
硬核项目经理
2023/09/07
8290
【Nginx07】Nginx学习:HTTP核心模块(四)错误页面与跳转
Spring Boot自定义错误页面,Whitelabel Error Page处理方式
我已经是Spring Framework框架的忠实粉丝。对于企业软件开发者来说它提供了对常见问题的通用解决方案,包括那些你在未来开发中没有意识到的问题。但是,它构建的J2EE项目变得比较臃肿,需要被一种新的解决方案替代。
九州暮云
2019/08/21
5K0
Spring Boot自定义错误页面,Whitelabel Error Page处理方式
Ingress错误代码友好页面(一)
Ingress是Kubernetes中的一个重要资源对象,用于管理和配置应用程序的外部访问。然而,当Ingress出现问题时,Kubernetes的错误提示并不总是友好和清晰。为了提高用户的使用体验,可以通过自定义错误页面来增强Ingress的错误提示信息,以便更好地解决问题。本文将介绍如何为Ingress配置错误页面,并提供示例。
玖叁叁
2023/05/05
1.4K1
【原创】008 | 搭上SpringBoot实战专车系列八:自定义错误页面
在上一篇SpringBoot集成数据持久化框架Mybatis最后提到一个问题,如何解决@Mapper注解这种开发负担。答案很简单,只需要告诉mabytis starter我们mapper接口的路径就可以了,这样就可以用更简便的方式达到同样的效果。实现代码如下:
java进阶架构师
2021/02/22
4060
ZBLOG PHP自定义通用404错误页面模板(简洁单页面)
一般情况下,从客户要求上看我们搭建的网站中并没有刻意去给客户网站安装404错误页面的模板主题页面,而是有时候采用的默认系统自带的。当然如果需要追求效果或者严格度的话,最好是设置通用的404错误页面模板,这样每次制作主题的时候直接统一调用也不错。
老蒋
2021/12/27
2.1K0
ZBLOG PHP自定义通用404错误页面模板(简洁单页面)
详解Apache下.htaccess文件常用配置
.htaccess文件是Apache服务器中最常用的一个配置文件,它负责相关目录下的网页配置。通过h网络
Java架构师必看
2020/07/21
3.2K0
什么是404页面,如何正确设置制作404页面
  404网页是用户尝试访问网站不存在的网页(由于用户点击了损坏的链接、网页已被删除或用户输入了错误的网址)时看到的页面。之所以称为 404 网页,是因为针对丢失网页的请求,网络服务器会返回 404 HTTP 状态代码,表明该网页未找到。 404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开。
全栈程序员站长
2022/09/18
2.2K0
Laravel5下自定义错误页面的配置
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/78794522
泥豆芽儿 MT
2018/09/11
1.3K0
Laravel5下自定义错误页面的配置
如何在CentOS 7上为Apache设置mod_rewrite
Apache是一个模块化Web服务器,允许您通过启用和禁用模块来自定义其功能。这使管理员能够定制Apache的功能以满足其Web应用程序的需求。
SQL GM
2018/10/19
5.8K0
k8s Ingress nginx错误页面的深度定制
网站运行过程中难免出现问题,为用户抛出一个错误页面,常见的错误页面包含403、404、500、502、503、504状态码,这些常见的错误页面状态码的含义如下
仙人技术
2020/12/18
2.9K0
k8s Ingress nginx错误页面的深度定制
推荐阅读
相关推荐
如何在Ubuntu 14.04上配置Apache以使用自定义错误页面
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验