Спасибо за ответ! Решил следующим образом.
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^sub\.site\.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/sub
RewriteRule ^(.*) %{HTTP_HOST}$1
RewriteRule ^(.*)\.site\.ru(.*) admin/$1/$2
Теперь отлично открывается -по sub.site.ru - site.ru/admin и в адрессной строке по прежнему sub.site.ru. Т.е пустые запросы заработали как надо. Но теперь нужно что бы например по sub.site.ru/afisha открывался site.ru/afisha, а открывается site.ru/admin/afisha. Попробую сделать как написал Вадим Назаров в посте выше. А что конкретно надо писать в этом rout.php?
Решилось все в htaccess - следующим образом.
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^(.+)\.site\.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/(.+)
RewriteRule ^(.*) %{HTTP_HOST}$1
RewriteRule ^sub\.site\.ru(.*) admin/