Ваши текущие Rewriterules являются общими.
[^/]+
соответствует всему, у которого нет "/", иначе это соответствует всему. Итак, в основном ваше первое правило
RewriteRule ^([^/]+)/?$ dashboard.php?action=$1 [L,QSA]
соответствует каждому. profile / всегда будет перенаправлен на панель управления. php? acton = profile.
Ваш .htaccess должен выглядеть следующим образом:
RewriteEngine On
RewriteCond %{THE_REQUEST} \/+dashboard\.php\?([^\&]+) [NC]
RewriteRule ^ %1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(news)/?$ dashboard.php?action=$1 [L,QSA]
RewriteCond %{THE_REQUEST} \/+user\.php\?([^\&]+) [NC]
RewriteRule ^ %1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(profile)/?$ user.php?action=$1 [L,QSA]
Как видите, я переключился
[^/]+
с более явным регулярным выражением.