7

I have a apache machine which is serving a .js file. That file should be the only file that need to seen.

I have configured to do so in my apache like this :

<Location /var/www/test/test.js>
    Order allow,deny
    Allow from all
</Location>

The site address is test.in which points to test.js file in /var/www/test directory. That is working fine. But I wish when the user tries to hit test.in/someurl (which is not available) or some other url than test.in need to give an message with 401 error.

How do I do that? Thanks in advance.

sriram
  • 8,562
  • 19
  • 63
  • 82

1 Answers1

17

NOTE: This Answer only applies to Version 2.2

If you are using Version 2.4 take a look at this answer or Look at the official Apache Documentation

You misused <Location> - the argument should be URI not the directory path... You should use <Directory> to get the expected behavior.

I would do something like this (you should finetune it, it shows just the principle):

# first deny access to everything
<Location />
 Order Deny,Allow
 Deny from All
</Location>

# then allow access to specific URL
<Location /test/test.js>
 Order Allow,Deny
 Allow from All
</Location>

Have a look on Order directive and one or more of following: Location, LocationMatch, Directory, DirectoryMatch, Files, FilesMatch, etc.

Tidoni
  • 195
  • 1
  • 4
  • 13
Kamil Šrot
  • 2,141
  • 17
  • 19