首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何在CentOS 7上配置Apache以使用自定义错误页面

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

原创
作者头像
谢鸢
修改于 2018-09-21 01:55:52
修改于 2018-09-21 01:55:52
2K10
代码可运行
举报
运行总次数: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 删除。

评论
登录后参与评论
1 条评论
热度
最新
phpinfo这个东西确实不应该放在网页中,会暴露太多的信息了。
phpinfo这个东西确实不应该放在网页中,会暴露太多的信息了。
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
绕过CDN查找网站真实IP的方法
1:先查一下分站的IP,很多情况是主站使用了 CDN 而分站没有使用。 类似这样 www.youngxj.cn使用了CDN ,那么 ip.youngxj.cn -->blog.youngxj.cn 等二级域名可能没有使用CDN,对于这种情况可以通过查询二级域名来获得真实的IP地址,值得注意的是 通过二级域名查询出来的IP地址不一定是主站的IP地址,有可能做了A记录,但是很有可能 在一个C端内,此时针对整个C端直接 扫开放了80端口的,一个一个访问即可。(当然博主的所有域名都是加上了cdn的,就不必那
用户1456630
2018/05/25
2.2K0
查询使用CDN的网站的真实IP
相似这么www.xxx.com 运用了CDN ,那么 mail.code521.com blog.code521.com 等二级域名也许没有运用CDN,关于这种状况能够经过查询二级域名来获得实在的IP地址,值得注意的是 经过二级域名查询出来的IP地址不一定是主站的IP地址,有也许做了A记载,可是很有也许 在一个C端内,此刻针对全部C端直接 扫开放了80端口的,一个一个拜访即可。
Qicloud
2022/01/27
2.9K0
运用CDN技术的网站验证以及相关风险
方法一: 描述: 使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN,多地 Ping 网站有:
全栈工程师修炼指南
2020/10/23
2.4K0
运用CDN技术的网站验证以及相关风险
绕过cdn获取网站真实IP
现在很多朋友建网站都挂cdn代理IP,第一是本身服务器延迟太高速度慢想提升一下速度,第二是自身服务器防御低,怕被攻击死,第三是既想提升速度也想增加网站的稳定安全性
酷酷的繁星
2020/04/13
10.9K1
绕过CDN寻找网站真实IP
CDN的全称是Content Delivery Network,即“内容分发网络”,它是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,减低网络阻塞,提高用户访问响应速度和命中率。
Al1ex
2022/12/22
3.9K0
绕过CDN寻找网站真实IP
你要的干货!信息收集之绕过CDN获取真实网站IP方法总结
CDN的全称是 Content Delivery Network,即内容分发网络,基本思路就是通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN核心的就是使用户可就近访问网络,取得所需内容,解决网络拥挤的状况,提高用户访问网站的响应速度或者用户下载速度。一般来说,网站开启CDN之后,会根据用户所在地的不同访问CDN的节点服务器,并不直接访问源服务器,这样可以减少网站服务器宽带资源,降低服务器压力,可以提升用户体验。这也就是大家都在ping百度,但是不同地区得到的反馈ip不一样的原因。其次,由于CDN节点的阻挡防护,可以更好的保护员服务器的安全。具体来说,CDN其实是充当了一个替身的角色,无论服务器是渗透还是DD0S攻击,攻击的目标都将是CDN节点,这样一来便间接的保护了网站本身。
网络安全自修室
2020/07/22
3.4K0
渗透测试 | 绕过CDN查找网站真实ip
在渗透测试过程中,经常会碰到网站有CDN的情况。CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。说的简单点,就是一组在不同运营商之间的对接点上的高速缓存服务器,把用户经常访问的静态数据资源直接缓存到节点服务器上,当用户再次请求时,会直接分发到离用户近的节点服务器上响应给用户,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验。
谢公子
2022/01/13
3K0
渗透测试 | 绕过CDN查找网站真实ip
cdn背后的网站真实IP
CDN 的全称是Content Delivery Network(内容分发网络),通过在网络各处的加速节点服务器来为网站抵挡恶意流量,把正常流量进行转发。用简单点的话来说,CDN一般有三个作用
意大利的猫
2020/08/20
2.7K0
绕过CDN查找真实IP方法总结
注:目前场面上大多数CDN服务商都提供了云WAF的配置选项,内置了多种安全防护策略,可对SQL注入、XSS跨站、Webshell上传、后门隔离保护、命令注入、恶意扫描等攻击行为进行有效拦截。
安全小王子
2020/07/31
4.8K0
绕过CDN查找真实IP方法总结
如何针对网站CDN的识别和绕过?
CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
网络安全自修室
2021/11/25
2.9K0
如何针对网站CDN的识别和绕过?
绕过CDN查找真实IP方法
相信大家平时在做渗透测试时,经常会碰到部署了CDN的网站,我们有时候想要获取某站的源站ip,方法有很多,今天我给大家总结一下,赠人玫瑰,手有余香。
天乐404
2023/11/16
1.8K0
绕过CDN查找真实IP方法
绕过CDN找到真实IP
内容分发网络,其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
ph0ebus
2023/05/16
1.8K0
最新绕过目标域名CDN进行信息收集技术
CDN(Content Delivery Network,内容分发网络)的目的是通过在现有的网络架构中增加一层新的Cache(缓存)层,将网站的内容发布到最接近用户的网络“边缘”的节点,使用户可以就近取得所需的内容,提高用户访问网站的响应速度,从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因导致的用户访问网站的响应速度慢的问题。
Ms08067安全实验室
2023/08/18
9140
最新绕过目标域名CDN进行信息收集技术
渗透测试之信息收集
  渗透测试者可以使用的信息收集方法包括公开来源信息查询、Google Hacking、社会工程学、网络踩点、扫描探测、被动监听、服务查点等。而对目标系统的情报探查能力是渗透测试者一项非常重要的技能,信息搜集是否充分在很大程度上决定了渗透测试的成败,因为如果你遗漏关键的情报信息,你将可能在后面的阶段里一无所获。
LuckySec
2022/11/02
1.3K0
渗透测试之信息收集
如何绕过cdn获取网站真实ip进行测试?
一般网站会使用cdn进行防御,我们访问时会经过cdn然后再经过源站服务器,这样我们进行渗透测试时很容易被拦截。而在这里,我们的思路是这样的:通过找到源站ip之后,把IP添加到hosts文件(主要作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定。)里面去;你访问网站返回的就是真实IP了,这样我们再进行测试,就会减少很多麻烦。
网e渗透安全部
2019/08/09
3.5K0
如何绕过cdn获取网站真实ip进行测试?
米斯特白帽培训讲义(v2)信息收集
一般来说,使用了 CDN 的网站在不同地点的ping结果是不一样的。不过这里它直接写出了百度云加速节点。
ApacheCN_飞龙
2019/02/15
9220
米斯特白帽培训讲义(v2)信息收集
常用的信息搜集和整理方法_什么叫单元整合备课
什么是信息搜集? 信息搜集也称踩点,信息搜集毋庸置疑就是尽可能的搜集目标的信息,包括端口信息、DNS信息、员工邮箱等等看似并不起眼的一些信息都算是信息搜集,这些看似微乎其微的信息,对于渗透测试而言就关乎到成功与否了。 信息搜集的重要性 信息搜集是渗透测试的最重要的阶段,占据整个渗透测试的60%,可见信息搜集的重要性。根据收集的有用信息,可以大大提高我们渗透测试的成功率。 信息搜集的分类 1、主动式信息搜集(可获取到的信息较多,但易被目标发现) 2、通过直接发起与被测目标网络之间的互动来获取相关信息,如通过Nmap扫描目标系统。 3、被动式信息搜集(搜集到的信息较少,但不易被发现) 4、通过第三方服务来获取目标网络相关信息。如通过搜索引擎方式来搜集信息。
Java架构师必看
2022/05/12
1.1K0
常用的信息搜集和整理方法_什么叫单元整合备课
寻找目标站点的ip
可以使用ping来确认目标的ip地址,以及是否启动了cdn(网络分发中心,提高不同地区用户的加载速度),如果启用了cdn那么ping得到的结果就不是唯一的ip,即启用了cdn。
kam1
2022/03/08
4750
寻找目标站点的ip
快保存:20种绕过CDN查找真实IP的实用技巧和工具列表
CDN,即内容分发网络(Content Delivery Network) ,是构建在现有网络基础之上的智能虚拟网络。它依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户能就近获取所需内容。
ICT系统集成阿祥
2025/01/16
6750
快保存:20种绕过CDN查找真实IP的实用技巧和工具列表
如何绕过cdn获取网站真实ip进行测试
导语:一般网站会使用cdn防御,我们访问时会经过cdn再经过源站服务器,这样我们进行渗透测试很容易被拦截,我们的思路是这样的,通过找到源站ip之后,把IP添加到hosts文件里面去;你访问网站返回的就是真实IP了,这样我们再进行测试,就会少很多麻烦。
HACK学习
2019/08/07
2.9K0
如何绕过cdn获取网站真实ip进行测试
推荐阅读
相关推荐
绕过CDN查找网站真实IP的方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档