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