httpd.conf 用於不區分大小寫的檔案服務

httpd.conf 用於不區分大小寫的檔案服務

我在管理 Apache 方面是個新手,所以如果我的措辭不正確,請原諒。

我有一個網站——比如說,http://domain.com。問題是,當我嘗試http://domain.com/index.html在 Web 瀏覽器中開啟時,它會顯示該頁面,但當我嘗試存取http://domain.com/Index.html(注意大寫 I)時,它會回應 HTTP 404。

如何配置 Apache 以不區分大小寫的方式提供這些檔案(以及目錄)?目前httpd.conf這裡

編輯 丹·C,謝謝你的提示。我基本上希望允許用戶從我的伺服器下載文件,並且並不真正希望他們意識到這一點Index.html並且index.html實際上是不同的。

我也很想知道這個決定的後果是什麼。

答案1

第一個想到的是模組重寫,它已經載入到您的配置中。

假設您的文件全部為小寫(這可能是個危險的假設):

RewriteEngine On

RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule ^(.*)$ ${tolower:$1} 

答案2

如果您在 Linux 伺服器上執行 apache,問題是它使用底層 Linux 區分大小寫的檔案系統,您可以查看 Matt 提到的 ReWrite。

另一個選擇是 apache 的 mod_speling 模組(是的,它是一個 L),提到>這裡< 但我認為這只會找到一個拼寫錯誤,並且如果一個目錄中有很多文件,也可能會減慢訪問速度

希望有幫助

答案3

它實際上不能與 httpd.conf 一起使用。如前所述,問題在於您所在的 Linux 檔案系統區分大小寫。

我知道一種肯定有效的方法:將您的網頁應用程式放入 /opt/www/yourapplication

然後僅為本地主機建立 /opt/www 的 SMB 共享

然後將Samba共享掛載到/var/www

Samba 適用於 Windows 共享,而 Windows 共享不區分大小寫,因此 Samba 會為您處理區分大小寫的問題,在內部將所有內容設為小寫。

相關內容