.htaccess或其他URL区分大小写

时间:2010-02-16 05:01:56

标签: .htaccess case case-sensitive

我的服务器区分大小写,并且想把它变成inSensitive 我的意思的例子是 让我说我上传Fruit.php
好吧,然后去这个文件不会工作:
www.website.com/fruit.php
但是这个会:
www.website.com/Fruit.php

有没有办法让Fruit.php和fruit.php工作?还有目录。即:
/Script/script.php
/script/Script.php

3 个答案:

答案 0 :(得分:12)

您需要使用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操作使Apache执行更多的工作来查找匹配项,例如纠正常见的拼写错误

答案 1 :(得分: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 :(得分:2)

UNIX服务器区分大小写 - 它们区分文件名和文件夹名中的大写和小写字母。因此,如果您将网站从Windows移动到UNIX服务器(例如,当您更改Web主机时),则可能会出现一定数量的“未找到页面”错误(404错误),因为目录和其他网站链接到你的错误有时会出错(通常以大写字母等方式写出文件夹名称的第一个字母)。这个基于javascript的自定义404错误页面通过将URL转换为小写来解决问题。

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

获取脚本

快乐的编码!!!!!!!