2010-02-16 47 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