Is there a way to actively serve Apache’s default, built-in 404 page for a number of URLs using mod_rewrite? Not a custom error document, but a rule like
RewriteCond %{REQUEST_URI} ^/dirname/pagename
RewriteRule -- serve 404 page -----
I know how to build a PHP page that sends the 404 header and have mod_rewrite redirect all the URLs there but I would prefer a solution that is based on mod_rewrite only.
I just had the idea of redirecting to a non-existent address:
RewriteCond %{REQUEST_URI} ^/dirname/pagename
RewriteRule .* /sflkadsölfkasdfölkasdflökasdf
but that would give the user the message “/sflkadsölfkasdfölkasdflökasdf does not exist” on the error page, which looks a bit unprofessional.
You can use the
Rflag on theRewriteRuleto force a redirect with a given status code:So this:
would return the default 404 page for
/page.html. Since this is a regexp, remember the escaping\.and anchoring$.-is ignored (i.e. “the Substitution string is dropped”), but there still needs to be something there to keep the rule well-formed.