如何解决web服务器上区分大小写的文件名问题


How to solve file name case sensitive on web server?

我不知道如何解决这个问题。

请帮我解决这个问题。

我在本地主机上工作。每当我对localhost/xyz/about.phplocalhost/xyz/About.php(关于和关于)进行操作时,它就会工作。但在godaddy LINUX网络服务器中,当我在地址栏上打字时,将字母改为大写时,像www.xyz.com/about.phpwww.xyz.com/About.php,为什么不起作用?

服务器上是否存在区分大小写的问题?如果是,我该怎么解决?谢谢

我假设您在Windows操作系统上运行localhost;它的文件系统和命名不区分大小写。

Linux和其他UNIX变体区分大小写。HTTP服务器将使用操作系统文件系统来查找您请求的资源。不幸的是,这因平台而异。

如果您想复制您的环境,请在开发和生产中使用相同的操作系统。

在虚拟机中安装Linux并在此基础上进行开发,或者转到Windows主机提供商。

除此之外,还有一些apache模块可以让您在Linux上实现不区分大小写的功能(我如何在Linux服务器中使URL区分大小写),但您应该避免。只需为URI使用正确的大小写,然后继续前进。总的来说,这就是为什么大多数非Windows web开发世界使用小写字母表示文件和URI的原因。混合大小写命名约定在应用于区分大小写的文件系统时可能会遇到麻烦,因为不同的开发人员或公司之间存在细微的差异和不同的意见。

godaddy服务器在unix机器上运行。这台机器有区分大小写的文件系统,所以About.phpabout.php是完全不同的文件,其中一个文件不在您的服务器上。您可以使用htaccess来重写和重定向它,但它只是一个临时解决方案

把这个.htaccess放在你的xyz目录中

RewriteEngine On
RewriteRule ^(About|aBout|abOut)'.php about.php [L,R=301]