linux Apache取消地址区分大小写方法

作者: JavasBoy 分类: Linux 发布时间: 2012-03-31 17:34 ė17,533 views 61条评论

网站有有些地址是大写的,有些是小写的,所以好多打不开,解决方法是用Apache里的mod_speling.so
Mark一下

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

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

/usr/local/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 /tmp/httpd-2.2.11/modules/mappers/
ll

此目录有个mod_speling.c文件

3、生成模块

/usr/local/apache/bin/apxs -c -i -a mod_speling.c

注:usr/local/apache/为我生产环境的apache目录,完成上述后会在/usr/local/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选项激活,具体说明可以参照以下地址:

http://www.1v5.com/apache/mod/mod_negotiation.html

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

1.增加错误页

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

ErrorDocument 300 /leapsoulcn404.html

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

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

将 CheckSpelling On 改成 CheckSpelling Off

本文出自 刘荣星的博客,转载时请注明出处及相应链接。

本文永久链接: https://www.liurongxing.com/linux-apache-mod_speling.html

一条评论

  1. 街拍秀jiepaishow 2012年4月19日 20:10 回复

    与-i操作类似,修改httpd.conf文件,可以吗。~~

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ɣ回顶部