2010-02-16 46 views
2

我的服務器是區分大小寫的,並且id想要將它變爲inSensitive。我的意思
例子是
可以說,我上傳Fruit.php
好,然後將這個文件不會工作:
www.website.com/fruit.php
但是這一次將:
www.website.com/Fruit.php

有沒有辦法讓Fruit.php和fruit.php工作?也與目錄。即:
/小號 CRIPT/script.php的
/腳本/ 小號 cript.php
.htaccess或其他URL區分大小寫

+0

請接受你之前提出的問題的正確答案,它會給那些人一點時間的名譽獎金,讓別人知道問題已經解決。 – nortron

回答

5

區分大小寫取決於文件系統,而不是Apache。然而,有一部分解決方案。 mod_rewrite的可以強制所有小寫(或大寫),像這樣:

RewriteMap tolowercase int:tolower 
RewriteRule ^(.*)$ ${tolowercase:$1} 

參考:http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritemap

不幸的是,如果所有的文件都是小寫的,而您指定大小寫混合的文件名(Fruit.php這僅適用。 )你很自在地將你的項目中的所有文件重命名爲小寫嗎?

2

UNIX的服務器是區分大小寫的 - 他們在文件名中的大寫和小寫字母區分和文件夾名稱。因此,如果您將網站從Windows移動到UNIX服務器(例如當您更改Web主機時),您可能會收到一定數量的「Page not found」錯誤(404錯誤),因爲連接到目錄和其他網站你有時候會弄錯案件(通常以大寫形式寫下文件夾名的第一個字母等)。這個基於JavaScript的自定義404錯誤頁面通過將URL轉換爲小寫來解決問題。

您可以從http://www.forbrugerportalen.dk/sider/404casescript.js

編碼愉快拿到劇本!!!!!!!

11

您需要使用mod_speling(原文如此),Apache模塊:

http://httpd.apache.org/docs/1.3/mod/mod_speling.html

在.htaccess

<IfModule mod_speling.c> 
    CheckCaseOnly On 
    CheckSpelling On 
</IfModule> 

的CheckSpelling手術使阿帕奇執行更爲複雜的努力,例如找到一個匹配糾正常見的拼寫錯誤

+0

最簡單的解決方案。爲什麼它沒有被投票? – noob

+0

@創造者:默認情況下,mod_speling通常不會啓用,據報道plus會帶來不俗的表現。 –

+0

是的,我用它並面臨着加載時間的增加。任何方式來改善使用這個性能? – noob