http服务器文件名大小写忽略

问题

文件从windows里面放到nginx里面去的时候,文件在windows下面是大小写忽略,也就是不论大小写都可以匹配的,而到linux下面的时候,因为linux是区分大小写的,也就是会出现无法忽略大小写的访问

调研

通过nginx里面目前还没有找到实现的方式,通过插件的方式也只是能把大小写全部转换成小写,这样要让存储的文件的名称全部改成小写,这个不太适合去改变用户的文件

而apache里面有模块直接来实现这个,那么考虑有适用场景的时候,可以使用nginx加apache或者直接采用apache的方式,这个最好可以灵活的选择,不限定最好

实现方式

修改配置文件/etc/httpd/conf/httpd.conf

1
2
3
4
5
6
7
8
<Directory />
AllowOverride ALL
CheckSpelling on
CheckCaseOnly on
Require all denied
</Directory>

LoadModule speling_module modules/mod_speling.so

经过测试单独开启一个

CheckSpelling on

就可以的

开启两个

CheckSpelling on

CheckCaseOnly on

屏蔽无关的更正,这个可以两个都设置或者设置一个也行的,开启两个就是将拼写更正的操作限制为小写/大写更改。不执行其他可能的校正

总结

这个根据选择进行使用,做成可选的时候就会方便很多,提供一个默认的选项,通过安装里面做控制

更新历史

why when
创建 2019年09月02日
更新 2019年12月9日