Notice they are all in Spanish. We have this manual translation running alongside the GTranslate for other languages. I have been able to write redirects for the Spanish URLs so that language switcher knows what is the correct URL:

This works well at making sure the translation widget pulls up the correct Spanish page (actual files on the server). However, if using the widget to switch from the Spanish pages to another language, I need to make sure the English URLs are used for translation instead of the Spanish URLs. Thus, I have the following code in the .htaccess file of the root directory:

The problem is that I am getting an infinite redirect loop when visiting any of the Spanish URLs. If I remove the ES->EN redirects in the root, everything in the /es/ dir works fine. However, I can't seem to get the rewrites of the URLs in the root directory from Spanish -> English. I want to make sure the Spanish URLs are only showing in the ES folder and root and every other (virtual) folder uses the English URLs.

I should note that the ES->EN rewrites are above the GTranslate rewrites, though I have tried both ways.