Using mod_rewrite to redirect all requests to a page
I always forget how to do this, so I thought I would write it down somewhere.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?request=$1
When in a .htaccess file (provided AllowOverrides is enabled) this will redirect all requests that don't match a physical file to /index.php
, passing the request into the $_GET['request']
variable.
If you miss out the second line: you will get a 500 internal server error as your response because the request to /index.php
would redirect to itself.