Linux主机网址URL大小写敏感问题
起因:按了个小程序,里面有几个目录是大写字母开头,导致我手动输入时无法进入。
众所周知:Linux主机是 大小写敏感的,架设在Linux主机上的网站URL是区分大小写的,见例子。
例1:
www.hzlzh.com/logo.gif 打开正常
www.hzlzh.com/logo.GIF 打开错误
www.hzlzh.com/LOGO.gif 打开错误
例2:
www.baidu.com/img/baidu_logo.gif 打开正常
www.baidu.com/img/BAIDU_logo.gif 打开错误
我始终坚信,在 .htaccess 中Rewrite 能解决这个问题,于是写了好几种,可最后都没能完全就觉(解决)问题。
最终搁浅在 将Rewrite 中 变量$1 强制小写的问题上:
下面是我写的 测试 .htaccess文件,基本实现了判别,
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^/?(.*)\.gif$ $1.gif [L,NC] </IfModule>
以上代码实现了:识别 loGO.giF并定向到 logo.gif
但是也就是在这里,我无法将 loGO.gif 定向到 logo.gif
使得:
http://img.hzlzh.com/logo.gif 打开正常
http://img.hzlzh.com/logo.GiF 打开正常
http://img.hzlzh.com/loGO.giF 打开错误
另一个!
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^/?([a-z/]+)\.html$ $1.php [L]
</IfModule>
于是,本问题待解决…………期待牛人帮助
PS:经过N次测试,得出结论,[NC]这个 Rewrite 忽略大小写的标志,只对写出来的部分有效,正则表达式部分是无效的。
所以,请不要尝试用 [NC]来解决此问题,徒劳。

很早注意到这个问题,不过没有深究,一般是会保持URL和路径名大小写一致的
PS:目录名大小写也有这个现象的
@bolo, 特别是目录,最蛋疼,有些程序首字母大写~~搞的我郁闷
所以尽量统一小写吧
@zwwooooo, 搜了好久无解,这方面文献太少了
还有这个bug呢?学习了!
真细心,俺还真的没发现
学习了,呵
这个情况我以前做CMS站的时候遇上过的,Linux主机/空间的确对大小写很敏感!
@itql, 有时候敏感真的不好!
技术文章,学习了
“可最后都没能完全就觉问题。 ” “就觉”是最新网络语?
@Landon,
不是什么流行语,是做别字,嘻嘻 谢谢发现,以修改