Como eu redireciono apenas a página raiz para outro subdomínio via htaccess?

1

Estou tentando redirecionar apenas meu domínio de nível superior, por exemplo. domain.com para sub.domain.com. As páginas internas do domínio não devem ser redirecionadas.

Eu segui o seguinte link: Como redirecionar root e somente root via htaccess?

Mas ao fazer uma pesquisa no meu site, a consulta foi anexada ao subdomínio como:

sub.domain.com/?q=product onde deveria ter sido domain.com/?q=product

Meu htaccess atual já tem que seguir o que foi reescrito:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !\.(png|gif|ico|swf|jpe?g|js|css)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php?sef_rewrite=1 [L,QSA]

O que eu adiciono para alcançar o comportamento descrito acima?

    
por JC Lee 01.04.2013 / 10:05

2 respostas

3

Logo abaixo do RewriteEngine On , adicione:

RewriteRule ^$ http://sub.domain.com [R=301,L]

Se eu estou lendo corretamente, parece que você quer manter a string de consulta. Mas se você quiser excluí-lo, você usaria:

RewriteRule ^$ http://sub.domain.com? [R=301,L]

Editar: Para redirecionar apenas a página / , caso não tenha uma string de consulta, use:

RewriteCond ${QUERY_STRING} ^$
RewriteRule ^$ http://sub.domain.com [R=301,L]
    
por 02.04.2013 / 08:20
0

Estou usando esta declaração:

ServerName mydomain.tld
RewriteEngine On
RewriteRule ^(.*) http://www.mydomain.tld [R=301,L]

Você também pode reutilizar todos os parâmetros por esta regra:

RewriteRule ^(.*) http://www.mydomain.tld$1 [R=301,L]
    
por 01.04.2013 / 11:41

Tags