Apache 设定忽略档案字母大小写


在 Unix Like 的作业系统, 档案及目录名称的英文字母大小写有分别, 而在 Windows 内则没有分别, 所以有些网页放在 Windows 主机上可以正常浏览, 而放到 Linux 上便会出现连结失效, 或者图片, CSS, Javascript 不能加载等问题。

例如这样一个超连结:

〈a href=’Filename.htm’〉links〈/a〉

在 Windows 下, 只要档案符合连结内的字母, 不会区分大小写, 所以如果档案名称是 “filename.htm” 可以正确浏览, 而在 Linux 下相同情况便会出现连结失效。

如果未能将网页内容一一修正, 可以设定 Apache 忽略档案字母大小写, 可以开启 Apache 的 mod_speling 模组, 即可解决问题。

在 Redhat 或 Debian 的系统都已经安装好 mod_speling, 但默认没有加载, 要加载可以用以下方法:

RHEL / CentOS / Fedora:

开启档案 /etc/httpd/conf/httpd.conf:

# vi /etc/httpd/conf/httpd.conf

加入以下一行:

LoadModule speling_module modules/mod_speling.so

重新启动 Apache:

# systemctl restart httpd

# service httpd restart

Debian / Ubuntu:

执行以下指令启用 mod_speling 及重新启动 Apache:

# a2enmod speling
# service apache2 restart

加载 mod_speling 到 Apache 后, 可以用 .htaccess 启用 moe_speling, 在网站目录 (即 DocumentRoot 的位置) 建立 .htaccess 档案, 加入以下内容便完成了:

Leave a Reply