問題が何であるかは完全には明らかではありませんが、書き換え条件はその後の書き換えルールにのみ適用されるため、ファイルは次のようになります。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^vip/$ vip/index.php [QSA]
RewriteRule ^admin/$ admin/index.php [QSA]
RewriteRule ^([^-]+)/$ /initial/function.php?stat=$1&%{QUERY_STRING} [QSA]
おそらく、すべての書き換えルールの前に条件を設定する必要があります。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^vip/$ vip/index.php [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/$ admin/index.php [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-]+)/$ /initial/function.php?stat=$1 [QSA]
編集:あなたのコメントに基づいて、あなたはただ必要なようです:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^\w+$ /function.php?user_name=$1 [QSA] // if a username can only contain a-z, 0-9 and _