开启apahce的mod_speling.so模块,让使用apahce http服务器不再有大小写烦恼

今天把服务器重新安装系统,做apache调优前,优化下apache对网络地址大小写不区分的支持。记录如下:

编译mod_speling.so模块去除Apache-url大小写字母敏感的配置

1. 进入apache源代码的modules/mappers/目录
2. 运行如下命令自动编译、安装和修改httpd.conf文件,激活mod_speling.so模块:

/www/wdlinux/apache/bin/apxs -c -i -a mod_speling.c

选项说明:

-c 执行编译操作
-i 安装操作,安装一个或多个动态共享对象到服务器的modules目录
-a 自动增加一个LoadModule行到httpd.conf文件,以激活此模块,若此行存在则启用之
-A 与-a类似,但是它增加的LoadModule行前有井号前缀(#)
-e 需要执行编辑操作,可与-a和-A选项配合使用,与-i操作类似,修改httpd.conf文件,但并不安装此模块

1、下载一个与当前使用的apache一样版本的安装包

2、解压安装包,然后进入其目录

 cd /www/wdlinux/apache/modules/mappers/
 ll

此目录有个mod_speling.c文件

3、生成模块

/www/wdlinux/apache/bin/apxs -c -i -a mod_speling.c

注:/www/wdlinux/apache/为我生产环境的apache目录,完成上述后会在/www/wdlinux/apache/modules/目录下多一个mod_speling.so模块文件
在/usr/local/apache/conf/httpd.conf中加上

LoadModule speling_module     modules/mod_speling.so
CheckSpelling On

CheckSpelling On (加上这个)

开启CheckSpelling On 后 apache 有时会 "300 Multiple Choices"
模块mod_negotiation:

内容协商,更准确的来说是内容选择,是一个从几个有效的文档中,选择一个最能匹配客户端要求的文档的过程,可以使用"MultiViews"搜索(由Options指令中的MultiViews选项激活。

这个功能看起来真的是很不错,很好的用户体验,但是在有的情况下却有点多此一举,下面就讲一下如何屏蔽这个功能,自己目前知道的有两种方法:

1.增加错误页

一般出现这种情况会报300的错误,可以添加错误页

ErrorDocument 300 /errpage/400.html

这样会自动跳转到errpage/400.html这个页面,就不会显示下载列表了

2.打开httpd.conf,找到CheckSpelling On ,

将 CheckSpelling On 改成 CheckSpelling Off

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。