7

I'm running httpd on linux.

I have a folder (/data/) that is not in the apache web directory (/var/www/html/) that I would like users to be able to access from their browser. I don't want to move this folder.

How do I make files in this folder accessible to a web browser when the folder is outside the apache web folder?

T. Brian Jones
  • 927
  • 4
  • 17
  • 29

4 Answers4

27

You can use mod_alias to do this quite simply

Alias /data /data/outside/documentroot
<Directory /data/outside/documentroot>
     Order allow,deny
     Allow from all
</Directory>

Would redirect urls like http://example.com/data/file1.dat to the file /data/outside/documentroot/file1.dat

dimir
  • 105
  • 4
user9517
  • 115,471
  • 20
  • 215
  • 297
2

You want Alias.

Ignacio Vazquez-Abrams
  • 45,939
  • 6
  • 79
  • 84
1

I used a symlink to pull this off. I'm wondering if there are any implications of doing this that I should be aware of.

ln -s /data/ /var/www/html/
T. Brian Jones
  • 927
  • 4
  • 17
  • 29
  • 2
    Now you have to enable symlinks on your server, which means that other files on the system could be accessed/compromised if symlinks are able to be created somehow. – Ignacio Vazquez-Abrams Jul 31 '11 at 09:21
  • 2
    This means you've the FollowSymlinks directive enabled in your configuration; which means external users could access stuff outside the directories you wanted to publish. This can be a problem or not; in general, you want to be sure no symlink is around which could expose data you didn't want to expose in the first place. – Marco Bizzarri Jul 31 '11 at 09:23
-1

I also used symlink with a name like this:

ln -s /data/ /var/www/html/data

Then go to the URL: http://your_server_ip/data

  • In an environment remotely concerned with **security** this will not work. – chicks Mar 28 '17 at 15:04
  • I second @chicks - if the server is correctly configured, this really shouldn't work. If it does work, you have some serious security issues. – Jenny D Mar 29 '17 at 12:37