I'd like advice regarding how to property define RewriteRules. I've got a setup which works best for my original requirement, but is showing difficult to extend for any new requirement.

The website layout is much like this:


HTML files have been in two dirs - en for British, ga for Irish.

The initial requirement would be to default to Irish pages. When the user doesn't specify the word what path within the URL, default towards the /ga/ content.

http://xyz.com                -> http://xyz.com/ga/
http://xyz.com/foo.html       -> http://xyz.com/ga/foo.html
http://xyz.com/en             -> unchanged
http://xyz.com/en/foo.html    -> unchanged
http://xyz.com/ga             -> unchanged
http://xyz.com/ga/foo.html    -> unchanged
http://xyx.com/css/*.css      -> unchanged
http://xyx.com/js/*.js        -> unchanged
http://xyz.com/googlexyz.html -> unchanged

Below is exactly what I've at the moment in /.htaccess.

RewriteEngine on

# don't rewrite google verification page
RewriteRule ^googlexyz.html$ - [L]

# if lang dir not specified, rewrite to /ga/
RewriteRule ^$ /ga/ 
RewriteRule ^(.*)\.html$ /ga/$1.html 

In ga/.htaccess and en/.htaccess I've:

RewriteEngine off

Which means that incoming /en and /ga prefixed pathways aren't transformed.

The brand new requirement would be to give a global 301 rule to suggest to from abc.com to www.abc.com something similar to this:

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

I am getting a difficult time getting that working correctly, I believe due to the RewriteEngine off under en/.htaccess and ga/.htaccess.

So my real question is, what's the easiest method to satisfy these two needs?