I've this rewriterule:

RewriteRule ^authenticate   /id/authenticate.php [NS,QSA]

I get this error:

[Sitting Jul 23 05:12:37 2011] [error] [client 62.178.15.161] Request exceeded the limit of 10 internal redirects because of probable configuration error. Use 'LimitInternalRecursion' to improve the limit if required. Use 'LogLevel debug' to obtain a backtrace., referer: https://2x.to/id/authenticate

I figured the NS flag should stop this from happening.

Isn't it working for whatever reason, did I not put it on correct or did I get me wrong its purpose?

Can there be a different way to get this to rewriterule "work" without renaming the file?

Edit:

I modified the RewriteRule to:

RewriteRule ^authenticate$  /id/authenticate.php [QSA]

which works all right. However am still thinking about why NS didnt work.

You most likely want [L] here, not [NS] -- [NS] is particularly for controlling the rewrite in certain unusual situations where Apache can make an "internal" request to itself, like while processing server-side includes.

You may even desire to make the rule more specific -- based on where this rule is, it is possible that ^authenticate is matching /id/authenticate.php. If that is the situation, you will need to add an early on rule which "carves out" the best for your file, such as this:

RewriteRule ^/id/authenticate\.php$ - [L]