最近公司的网站迁移了机房,我也强烈主张把服务器从原来的Windows系统换成了Linux系统,原因其实不用解释,只要看一下两边系统的开发者数量规模就知道各自生态所适用的环境。应该说,Windows系统对小白用户有多友好,Linux针对开发和运维的人员就有多有好。毕竟生态的繁荣可以给日常的工作带来极大的便利。而且网站服务器放在机房,也没必要因为图形界面一直耗费不必要的资源(事实上,迁移过后,整个体验也确实丝滑般流畅,感谢Linux)。

但是迁移之后发现一个问题,那就是我们某个页面的url调整成为大写之后就出现404的情况(例:正确的url是http://your_domain/bbs,但是某老板输入http://your_domain/BBS就返回404,本来我觉得这个无伤大雅,但是谁让人家是老板呢,还是要研究下为什么以及怎么解决)。

一开始这个问题让我始终不得其解,因为我知道这很正常,因为网站根目录下面就没有大写字母对应的文件夹,访问当然返回404页面。但是同事坚持说:迁服务器之前访问大写字母对应的url是可以正常访问的。

经过多方查询才了解到一个我之前都没有留意过的问题。原来Windows对大小写字母是不敏感的,也就是说,只要字母一样,大小写没差别。这也就意味着同目录下不能同时存在一个大写的文件夹/BBS和一个小写的文件夹/bbs。如图所示,我在桌面上建立两个文件夹,系统是不允许的。

但是Linux系统是对大小写敏感的。两个文件或者文件夹如果名字一样只是字母大小写有不同是可以共存的。如下图所示。

那么既然发现了这样该怎么解决呢?其实网上是有教程关于如何解决Linux系统针对大小写敏感的问题的,有需要的同学可以自行谷歌,但是呢,我是觉得大小写问题并没有必要全部rewrite成小写,既然使用Linux就应该享受它,是吧?一边是老板的咄咄相逼,一边是技术的信仰。果断在根目录下面新建了一个文件夹名叫/BBS,然后新建了一个index.html,编辑了如下内容,保存,搞定。

<script>
window.location.href="http:// your_domain /bbs";
</script>

哈哈,这段代码的意思就是所有访问http://your_domain/BBS的,全都给我重定向到http:// your_domain /bbs。这样不就既可以保持技术的信仰,又可以交差。

当然,这种办法能有效解决访问/BBS的问题,如果你给我来了个/BBs之类的访问,还是无效的哦,如果希望解决这个问题还是自行谷歌url的rewrite,网上很多教程。