.htaccess or other URL Case Sensitive

2020-02-10 09:51发布

My server is Case Sensitive, and id like to turn it to inSensitive.
Example of what I mean is
lets say I upload Fruit.php
Well then going to this file wont work:
www.website.com/fruit.php
but this one will:
www.website.com/Fruit.php

Is there a way so Fruit.php and fruit.php will work? also with the directories. i.e:
/Script/script.php
/script/Script.php

3条回答
可以哭但决不认输i
2楼-- · 2020-02-10 10:32

You need to use the mod_speling (sic) apache module:

http://httpd.apache.org/docs/1.3/mod/mod_speling.html

In .htaccess

<IfModule mod_speling.c>
  CheckCaseOnly On
  CheckSpelling On
</IfModule>

The CheckSpelling operative makes Apache perform a more involved effort to find a match e.g. correcting common spelling mistakes

查看更多
小情绪 Triste *
3楼-- · 2020-02-10 10:37

UNIX-servers are case-sensitive - they distinguish between upper-case and lowercase letters in file names and folder names. So if you move your website from a windows to a UNIX-server (when you change web host for instance), you risk getting a certain amount of "Page not found"-errors (404 errors), because directories and other websites linking to yours sometimes get the cases wrong (typically writing the first letter of folder names in upper-case etc.). This javascript-based custom 404-error page solves the problem by converting URL's into lowercase.

You can get the script from http://www.forbrugerportalen.dk/sider/404casescript.js

Happy coding !!!!!!!

查看更多
爷、活的狠高调
4楼-- · 2020-02-10 10:39

Case sensitivity depends on the file system, not Apache. There is a partial solution, however. mod_rewrite can coerce everything to lowercase (or uppercase) like so:

RewriteMap tolowercase int:tolower 
RewriteRule ^(.*)$ ${tolowercase:$1}

Reference: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritemap

Unfortunately, this only works if all your files are lowercase, while you specifies mixed case filenames (Fruit.php.) Are you comfortable renaming all the files in your project lowercase?

查看更多
登录 后发表回答