Based on the conversation you had , you will not need to change the path to the document with an error when moving the project to another folder with a different name.
First, you cannot use variables when using ErrorDocument . The path you provide must be static. The specified path must be either an external URL (in this case your browser will be redirected) or to a file relative to your document root (i.e. localhost ).
Unfortunately, ErrorDocument cannot find the file relative to the current directory (i.e. project ). The only logical way to do this is to remove the leading slash, but this will cause Apache to display it as a string in the browser.
This leads us to the only possible solution: mod_rewrite . However, the only problem with its use is that it is processed at an early stage in the mapping pipeline , which may allow other modules (such as mod_proxy) to influence the process .
However, you can try the following:
/project/.htaccess :
RewriteEngine on # Determine if the request does not match an existing file or directory RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # If so, send the request to the applicable file, relative to this directory RewriteRule ^ errordocs/404.php [L] # Per your comment and suggested edit, add the following. # Note: This should not make any difference as mod_rewrite and PHP should # already handle the error document. ErrorDocument 404 /errordocs/404.php
/project/errordocs/404.php :
This file will send a 404 header because .htaccess cannot do this.
<?php header("HTTP/1.0 404 Not Found"); ?> <h1>Sorry, we couldn't find that...</h1> <p>The thing you've requested doesn't exist here. Perhaps it flew away?</p>
source share