Hi DK,
This is the first time I’ve done this so I apologize if I am messing you around and confusing matters. I appreciate your patience 
I’ll update you on where I’m at 
OK, so I’ve had my web host set-up wild card sub domains just today (they said the ‘Dynamically configured mass virtual hosting’ link you gave was a little too complex for my CPanel set-up) so that juice.ben.com or any other sub domain is now pointing to ben.com. This is all working and I’m happy with this side of things
So I guess we can forget about the sub domains now.
Now what I am trying to achieve is if they aren’t visiting the website through a sub domain, the contents of the ben.com/_website/ folder will appear but without redirecting.
Some examples…
If they go to:
http://ben.com/about/
It will really load:
http://ben.com/_website/about/
If they go to:
http://ben.com/test.php
It will really load:
http://ben.com/_website/test.php
So, that’s where my latest code come in. Here it is again
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^ben\\.com$ [NC]
# these check to see if the file exists which isn't really
# what I want but I get a 500 error if I remove these.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /_website/index.php [L]
Now, this code works for the above just fine. The only time it breaks or doesn’t work is when I go to:
http://ben.com/
http://ben.com/index.php
It loads:
http://ben.com/
http://ben.com/index.php
Rather than:
http://ben.com/_website/
http://ben.com/_website/index.php
So all I have to do is somehow tell it that if they go to either of the above, it needs to show the /_website/ folder instead.
I had a play with your code. I added in the /_website/ folder and changed a few things to suit but it’s giving me a 500 error…
RewriteEngine On
# Redirect www to non-www
RewriteCond %{HTTP_HOST} ^www\\.ben\\.com$ [NC]
RewriteRule ^(.*)$ http://ben.com/$1 [R=301,L]
# Capture main domain (to use for the redirection to the /_website/ subdirectory)
RewriteCond %{HTTP_HOST} ^ben\\.com$ [NC]
# Don't loop on the subdirectory!
RewriteCond %{REQUEST_URI} !^_website/
# Redirect everything to the subdirectory
RewriteRule ^(.*)$ _website/$1 [L]
Am I making sense now?
Once again I appreciate your help and patience with this. Like I said this is all new to me so I’m having trouble explaining everything correctly.