Ad

Mod-Rewrite Loading Files Behind The DocumentRoot

- 1 answer

I'm using .htaccess and mod_rewrite to point to files that reside behind the DocumentRoot. My folder structure looks like this:

home/
    webroot/
    other_files/

I have a .htaccess file in webroot with the following content:

RewriteEngine on
RewriteRule ^(.*)$ /home/other_files/$1

If I try to access http://example.com/file.html I receive the following error:

The requested URL /home/other_files/file.html was not found on this server.

Is it even possible to load files that are behind the DocumentRoot? If so, can someone point me in the right direction?

Ad

Answer

I believe you need to add a section with

<Directory "/home/other_files">
  (options)
</Directory>

to your server configuration before apache will be able to serve anything from it. For an example, my DocumentRoot is /var/www but there is this section in the default available site:

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

You could then rewrite a URL to go to /doc/ and the server would know where to get the files from.

Ad
source: stackoverflow.com
Ad