27

This is a rule in my .htaccess

# those CSV files are under the DOCROOT ... so let's hide 'em
<FilesMatch "\.CSV$">
 Order Allow,Deny
 Deny from all
</FilesMatch>

I've noticed however that if there is a file with a lowercase or mixed case extension of CSV, it will be ignored by the rule and displayed.

How do I make this case insensitive?

I hope it doesn't come down to "\.(?:CSV|csv)$" (which I'm not sure would even work, and doesn't cover all bases)

Note: The files are under the docroot, and are uploaded automatically there by a 3rd party service, so I'd prefer to implement a rule my end instead of bothering them. Had I set this site up though, I'd go for above the docroot.

Thanks

alex
  • 479,566
  • 201
  • 878
  • 984

3 Answers3

37

This page from the apache docs says that you can do it like this:

<FilesMatch \.(?i:csv)$>
hjpotter92
  • 78,589
  • 36
  • 144
  • 183
Chad Birch
  • 73,098
  • 23
  • 151
  • 149
20

Case insensitive:

<FilesMatch "(?i)\.(js|css|eot|ttf)$">
Fox
  • 397
  • 3
  • 3
0

"\.[cC][sS][vV]$"

It is still probably better to be consistent and rename the uploaded files as they arrive on your server.

Amy B
  • 17,874
  • 12
  • 64
  • 83