Como Shane Madden já mencionou, o primeiro RewriteCond
não parece que vai corresponder a nada. O motivo é duplo: em primeiro lugar, o primeiro .
não é ignorado e, em segundo lugar, a variável% {HTTP_HOST} não contém nenhuma barra, portanto, toda a seção após domain\.com
não corresponderá a nada.
RewriteCond %{HTTP_HOST} ^([^./]+)\.domain\.com/([a-zA-Z0-9/-]+)$
Eu nunca usei% 1 no lado esquerdo de um RewriteCond antes. A menos que tenha certeza de que isso funciona, se você tiver mais problemas, tente remover essa linha para eliminá-la como uma possível causa. Também não deve haver um sinal =
lá. Simplesmente !www
é o que você quer aqui. Se você tiver problemas com essa linha, altere-a para usar a variável %{HTTP_HOST}
em vez de% 1.
RewriteCond %1 !=www
O $2
na substituição deste RewriteRule não possui conjuntos de colchetes correspondentes no padrão, portanto, ele estará vazio. Você provavelmente desejará adicionar um padrão maior a este. Se tiver apenas um conjunto de parênteses, $ 1 será o que você deseja, mesmo que você já tenha% 1 na substituição. Eu suspeito que você também queira fazer este /redirect.php...
se você estiver fazendo isso nos arquivos de configuração e não em um .htaccess.
RewriteRule ^ redirect.php?subdomain=%1&args=$2
Além disso, devo acrescentar que a correspondência simplesmente ^
está propensa a criar loops. Tenha cuidado com isso.