apachemod-rewrite

Rewrite rule if condition is not matched


How may I perform a rule if the URL is not matching the path "forums"?

For example:

RewriteCond IF URL IS NOT forums
RewriteRule !\.(js|gif|css|jpg|png)$ %{DOCUMENT_ROOT}/index.php [L]

Solution

  • Apache's RewriteCond as well as the RewriteRule directive support the exclamation mark to specify a non-matching pattern:

    You can prefix the pattern string with a '!' character (exclamation mark) to specify a non-matching pattern.

    This should work:

    RewriteCond %{REQUEST_URI} !^/forums.*
    RewriteRule !\.(js|gif|css|jpg|png)$ /index.php [L]
    

    --> redirect all requests not beginning with forums and not ending with the listed suffices to index.php