Lieber seth_not@home,
RedirectMatch ^/bar(|/.*)$ /foo/bar$1
da wird für den Client (Browser) kein Redirect zur neuen URL gefordert. Laut Dokumentation fehlt da ein [R] dahinter. Sonst versucht nur der Server die alte Adresse intern als neue zu verstehen, die dann in der nächsten Zeile wieder zurückmodifiziert wird - und Du hast Deine von Dir beschriebene Schleife.
Du müsstest also durch eine passende RewriteCondition dafür sorgen, dass der Request nach der Zeile fertig beantwortet ist.
RewriteCond %{REQUEST_URI} ^/bar/.*$
RewriteRule ^(/bar.*) /foo$1 [R]
RewriteCond %{REQUEST_URI} ^/foo/bar/.*$
RewriteRule ^/foo(/bar.*) ^$1
Obiger Code ist ungetestet, könnte aber aus Versehen so passen.
Liebe Grüße,
Felix Riesterer.
--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)