Depois de tentar resolver isso usando .htaccess e falhando, acabei usando PHP para fazer a análise de URL para mim. Para aqueles que desejam ver o que eu fiz:
$host = $_SERVER['HTTP_HOST']; $subdomain = str_replace('.example.com', '', $host); if($subdomain != 'www') header("Location: http://www.example.com/shop?user_name=".$subdomain);