Hello everyone.
I had a similiar problem with 1&1, whereby it didnt matter what I did with the .htaccess it just didnt work.
I tried file paths to root, subdomains and folders.
So after digging around in here and generally in the web I found the one I now use.
It may help you out, its been tested now on 6 hosts and works perfectly (ref: subdomain, change where needed)
Hope it helps
RewriteEngine On
RewriteBase /
#RewriteCond %{HTTP_HOST} ^DOMAINNAME.com [NC]
#RewriteRule ^(.*) http://www.DOMAINNAME.com/$1 [R=301,L]
#First, remove trailing slash, dot and comma if present. Trailing slash is well-known isuue (duplicity),
#trailing dots, commas and so on sometimes happen in forums when URLs are wrongly parsed out
#from a sentence. Not 100% implementation, but works fine.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.*[^/,\.])$
RewriteRule ^(.*)[/\.,]$ /$1 [L,R=301]
#this is my experimental feature - delete it
#if the file exists in /cache (not /assets/cache),
#output it instead of php
RewriteCond cache%{REQUEST_URI}.html -F
RewriteRule .* cache%{REQUEST_URI}.html [L,QSA]
#this is the standard nice url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]