Para simplesmente redirecionar todos os urls que não têm um / dentro deles, você poderia conseguir com um simples AliasMatch (de mod_alias ):
AliasMatch ^/([^/]+) /path/to/handler.php
Você pode então examinar a variável de ambiente REQUEST_URI em seu script para processar
o usuário para exibir.
E, para coisas adicionais, como /about handling:
AliasMatch ^/([^/]+)/(about|videos|blah) /path/to/handler.php
ou você pode fazer com que ele corresponda a apenas dois níveis (assim, caminhos como /x/y/z não serão manipulados) da mesma forma que fizemos com a parte do usuário acima ( [^/]+ um ou mais caracteres que não são uma barra):
AliasMatch ^/([^/]+)/([^/]+) /path/to/handler.php
E novamente use o REQUEST_URI para descobrir o que exibir.
Isso exibirá o URL da página "no estado em que se encontra" (para que a URL permaneça a mesma em sua barra de localização no navegador), ainda que o conteúdo seja gerado por /path/to/handler.php .
Estas seriam duas regras separadas. Provavelmente haveria uma maneira de manipular apenas um /username e /username/something em uma regra, mas provavelmente acabaria ficando ilegível. Eles são feitos dessa maneira para evitar corresponder tudo depois de domain.com .
Se você precisar mudar o caminho para os argumentos para o script, então você está na terra de RewriteRule (de mod_rewrite ). Se você quiser manter o URL na barra de localização
você terá que fazer uma consulta de proxy reverso:
RewriteEngine On
RewriteRule ^/([^/]+) /path/to/handler.php?user=$1 [LP]
RewriteRule ^/([^/]+)/(about|videos|blah) /path/to/handler.php?user=$1&args=$2 [LP]
Isso salvaria o script tendo que processar REQUEST_URI e pode extrair variáveis de $_GET['user'] e $GET['args'] se estiver usando PHP.
Novamente, como AliasMatch , essa segunda regra poderia ser:
RewriteRule ^/([^/]+)/([^/]+) /path/to/handler.php?user=$1&args=$2 [LP]
mas note que, para ambos, o seu script terá de saber como lidar com tudo o que corresponda a dois URLs. Isso pode não ser o que você deseja para esses URLs, como:
/errors/404.html
/about/google.html
e assim por diante.