If your request isn’t heard, there are several ways to do it.
For static files, you can catch lowercase (or uppercase, whatever) file request with 404 error page script and serve the desired page, and also create a symlink so that all subsequent requests are served without going through any script.
If you don’t like to send 404 header, you can redirect requests for case-mismatched/non-existent files with a RewriteRule and handle with it (to get 200 response header).
It’s possible to handle this with nph script, as well, but I don’t think it’s necessary and symlink is lighter and easier.
For script pages, you can use one general script that converts case and include/import desired script without much penalty.