I have a website where users register using a username but my RewriteRule only works on one-name usernames and two-name usernames that are separated by an underscore or hyphen but if you use an @ sign before your username or you use a space,it doesn't work e.g if one registers using 'Tom', 'TomClark', 'Tom-Clark' or 'Tom_Clark' they can be able to go to their profile page but if they register using 'Tom Clark' or '@Tom Clark',they get Error 404 object not found.I want my RewriteRule to recognise spaces and @ sign.
Here is my .htaccess page:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?u=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?u=$1