Redirect済みかどうかの判定ってできないんでしょうか?

ブラウザ上では
/main/ が / になるように、301でリダイレクトしたいんですけど、
内部的には / を /main/ にしたくて
/ でも /main/ でも同じページが返されるようにしたいんです。

現状 ↓
RewriteRule ^/*main/?(.*)/*$ $1 [L,R=301,QSA]
RewriteRule ^$ main/ [L,QSA]

これだと無限ループになるんで、上のルールがリダイレクト済みなら評価しないっていうことが
できればなあと思っています。
内部リダイレクトはNSフラグによるサブリクエストにはならないようですし、
REMOTE_ADDRでアクセスした時のURLがわかればと思ったけど
それも内部リダイレクトで上書きされてしまうようでお手上げになってしまいました。