if someone goes to
lol.example.com
, it will show page:example.com/user/profile.php?name=lol
.
Estritamente falando, ele mostrará a página: lol.example.com/user/profile.php?name=lol
(o subdomínio não é removido). Mas como (eu suponho) todos os subdomínios e o domínio principal apontam para o mesmo lugar no sistema de arquivos, isso funciona.
test.example.com/pathtofile
should get the contents ofexample.com/user/pathtofile
Sua diretiva original apenas reescreve uma solicitação para a raiz do documento ( test.example.com/
). Para reescrever /pathtofile
, você pode adicionar outro bloco de regras após o acima em .htaccess
. Por exemplo:
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteCond %{HTTP_HOST} [^.]+\.example\.com [NC]
RewriteCond %{REQUEST_URI} ^/([^/]+)$
RewriteRule !^user/ /user/%1 [L]
Isso reescreve todas as solicitações que ainda não iniciam /user/
e consistem em apenas um segmento de caminho (comprimento diferente de zero), como em seu exemplo (por exemplo, /pathtofile
e não /path/to/file
) e reescreve para /user/pathtofile
.
UPDATE: Se você tiver um ErrorDocument
definido, precisará abrir uma exceção anteriormente em seu arquivo '.htaccess para evitar que sub-requisições do documento de erro sejam reescritas. Por exemplo:
RewriteRule ^404\.php$ - [L]