本文作者:烂笔头

Apache 忽略网站 URL 的大小写的方法

烂笔头 6个月前 ( 01-27 ) 49

Linux 服务器访问路径都是区分大小写的,那么搭建了 Apache 后访问 www.abc.com/Index.html 和 www.abc.com/index.html 访问的路径是不一样的,如下图所示,实际首页是 Index.html:

image.png

处理办法

要解决这个问题,需要使用使用 Apache 的 mod_speling 模块

1、全新编译安装 Apache

编译安装 Apache 时把 mod_speling 模块也编译了,如

# ./configure --prefix=/usr/local/apache2 --enable-so --enable-speling

1.2、修改 Apache 的配置文件 httpd.conf,加上:

LoadModule speling_module     modules/mod_speling.so  
CheckSpelling On

这样就启用了 mod_speling 模块。

2、只编译安装 mod_speling 模块

假设 Apache 安装目录是 /usr/local/apache2。

2.1、确认 /usr/local/apache2/modules 目录下存在 mod_speling.so 模块。

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

# /usr/local/apache2/bin/apxs -c -i -a mod_speling.c

c 执行编译操作。

-i  安装操作,安装一个或多个动态共享对象到服务器的 modules 目录。

-a 自动增加一个 LoadModule 行到 httpd.conf 文件,以激活此模块,若此行存在则启用之。

-A 与 -a 类似,但是它增加的 LoadModule 行前有井号前缀(#)。

-e 需要执行编辑操作,可与 -a 和 -A 选项配合使用,与 -i 操作类似,修改 httpd.conf 文件,但并不安装此模块。

2.3.  在 /usr/local/apache2/conf/httpd.conf 中添加

LoadModule speling_module     modules/mod_speling.so  
CheckSpelling On

2.4、重启 Apache

# /usr/local/apache2/bin/apachectl restart 或 # service httpd restart


文章版权及转载声明

作者:烂笔头本文地址:https://www.ahaoyw.com/article/59.html发布于 6个月前 ( 01-27 )
文章转载或复制请以超链接形式并注明出处阿豪运维笔记

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

分享