Prepend and Append Files with .htaccess

By  on  

One of the lessor known and used capabilities of .htaccess files is the ability to prepend and append includes to every page request.  Doing so avoids needing to code <?php require('footer.php'); ?> in every template file you wat to use them in.  Here's the .htaccess code:

# Prepend the file
php_value auto_prepend_file "/dir/path/utilities.php"

# Append file to bottom of page
php_value auto_append_file "/dir/path/templates/footer.php"

Now don't mistake this post as me telling you to use this strategy;  using this functionality creates a layer of indirection that could confuse a team of developers if they don't all have a grasp of where automatically included files are coming from.  Just wanted to let you know this was possible!

Recent Features

  • By
    JavaScript Promise API

    While synchronous code is easier to follow and debug, async is generally better for performance and flexibility. Why "hold up the show" when you can trigger numerous requests at once and then handle them when each is ready?  Promises are becoming a big part of the JavaScript world...

  • By
    Responsive Images: The Ultimate Guide

    Chances are that any Web designers using our Ghostlab browser testing app, which allows seamless testing across all devices simultaneously, will have worked with responsive design in some shape or form. And as today's websites and devices become ever more varied, a plethora of responsive images...

Incredible Demos

  • By
    New MooTools Plugin:  ElementFilter

    My new MooTools plugin, ElementFilter, provides a great way for you to allow users to search through the text of any mix of elements. Simply provide a text input box and ElementFilter does the rest of the work. The XHTML I've used a list for this example...

  • By
    Image Data URIs with PHP

    If you troll page markup like me, you've no doubt seen the use of data URI's within image src attributes. Instead of providing a traditional address to the image, the image file data is base64-encoded and stuffed within the src attribute. Doing so saves...

Discussion

  1. Markus

    this strategy is often used to hook a profiler into an existing app, which works great in DEV environments
    see e.g. http://xhprof.io/

  2. Barry Wood

    I can see it now, the /html directory full of code snippets, and an incredibly convoluted htaccess file that conditionally assembles the various pages for a site. :)

    • Quick! Turn it into a framework!

  3. I’ve used to use this technique, but dropped it for a while now.
    It appears very useful at first but can be dangerous actually…
    One of its weakness is the impossibility to “un” prepend or “un” append according to directory or filematch directives.

  4. Matthew

    How can i use the .httaccess pre-append a .php file? i have tried using—– php_value auto_prepend_file “inc.php”

    Am getting this error: Fatal error: Unknown: Failed opening required ‘inc.php” (include_path=’.;D:\xampp\php\PEAR’) in Unknown on line 0

  5. Abhijeet

    @Matthew

    have you tried using full path like /var/www/site/dir/file.php?

  6. .htaccess – is a single file for all project. And I think it’s a bad practice to prepend files, because they will prepend on all pages.

  7. I find it hard to believe @ Pluto htaccess allows if statements.

    php_value auto_prepend_file "fullpath/headers.php"
    php_value auto_append_file "fullpath/index.php"
    
  8. Thanks Chris, this would be a great way to append a “copyright link” that can’t easily be found.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!