设为首页收藏本站

UNIX技术社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: console
查看: 1840|回复: 0

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

[复制链接]
发表于 2012-6-9 15:16:08 | 显示全部楼层 |阅读模式
网站有有些地址是大写的,有些是小写的,所以好多打不开,解决方法是用Apache里的mod_speling.so
Mark一下
编译mod_speling.so模块去除Apache-url大小写字母敏感的配置
1. 进入apache源代码的modules/mappers/目录
2. 运行如下命令自动编译、安装和修改httpd.conf文件,激活mod_speling.so模块:
1
/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、解压安装包,然后进入其目录
1
2
cd /tmp/httpd-2.2.11/modules/mappers/
ll



此目录有个mod_speling.c文件
3、生成模块
1
/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中加上
1
2
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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表