1

Utilizing .htaccess rules, I'm attempting to load a file from within a sub-directory while keeping the frontend URL unchanged if both the domain and file path match criteria.

Example of URL:

example.com/specificfile.xml

The file itself is within a sub-directory that is not the public web root:

/var/www/feeds/specificfile.xml

While attempting to Google this, I'm getting a lot of results for RewriteBase but that's not what I'm after. I need to "rewrite base directory" for only a single file and retain the frontend URL.

1 Answer 1

1

Assuming /var/www is the document root then in order to serve /feeds/specificfile.xml when requesting /specificfile.xml you would do the following using mod_rewrite in the root .htaccess file:

RewriteRule ^specificfile\.xml$ feeds/$0 [L]

For this to work, RewriteBase must either be not set at all (preferable) or set to RewriteBase /.

The $0 backreference simply saves repetition - it refers to the entire URL-path that is matched by the RewriteRule pattern, ie. specificfile.xml.

Note that if you have existing mod_rewrite directives in your .htaccess file then order matters. (eg. External/canonical redirects need to go first.)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .