Если foo / bar существует как реальный каталог, то сервер будет перенаправлять клиента на foo / bar / (с завершающим слешем). Это необходимо для правильной работы относительных URL-адресов на клиенте. Если вы добавите правило, которое переписывает это обратно в foo / bar с перенаправлением, тогда будет цикл. Простой способ проверить, происходит ли это, - указать путь, которого вообще не существует (я предполагаю, что по вашему обнаружению index.php дерево каталогов действительно существует). Несуществующий путь не вызовет встроенное перенаправление.
Если я установлю набор правил, аналогичный вашему (плюс предлагаемое правило удаления косой черты), я смогу увидеть разницу между каталогом, который существует, и каталогом, который не существует. Те, которые не работают должным образом, те, которые заставляют Firefox сказать Эта страница неправильно перенаправляет . IE8 говорит что-то подобное. Возможно, используемая вами установка Apache может обнаружить ее и превратить в ошибку 500?