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]来解决此问题,徒劳。

版权所有© HzlzH | 本文采用 BY-NC-SA 进行授权
转载需注明 转自: 《Linux主机网址URL大小写敏感问题

相关文章

12 Comments.
  1. 很早注意到这个问题,不过没有深究,一般是会保持URL和路径名大小写一致的
    PS:目录名大小写也有这个现象的

  2. 所以尽量统一小写吧

  3. 还有这个bug呢?学习了! :-D

  4. 真细心,俺还真的没发现

  5. 这个情况我以前做CMS站的时候遇上过的,Linux主机/空间的确对大小写很敏感!

  6. 技术文章,学习了

  7. “可最后都没能完全就觉问题。 ” “就觉”是最新网络语?

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

[ Ctrl + Enter ] Typed 0 Words 订阅评论Feed