A RewriteRule loops when the target of the rule matches the initial rewrite pattern. For example, if you were to rewrite all URLs starting with "foo" to "foo.php", then "foo.php" would also get rewritten to "foo.php", and so on, forever.

For example, consider the following rule:

RewriteRule ^/example http://example.com/example.html [R]

A simple redirect. The resulting URL matches the RewriteRule (because it starts with /example and redirects. And again. And again. You get the idea.

This is solved by prefacing your RewriteRule with a RewriteCond to catch that condition, thus: