Rewrite rule if condition is not matched

jcoahd picture jcoahd · Mar 18, 2011 · Viewed 93.1k times · Source

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]

Answer

marapet picture marapet · Mar 18, 2011

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