especialistas em htaccess:Redirecione todos, exceto root, para um TLD, redirecione root para outro TLD - WordPress
Pergunta
A ajuda dos gurus é apreciada.
Fui solicitado a colocar a página inicial do WordPress de um cliente em um TLD (ou seja,domain.eu) e fazer com que todas as outras páginas/diretórios sejam 301 para uma extensão de TLD diferente (ou seja,domínio.com/everything-else).Não sei por que isso está sendo solicitado, mas aparentemente é importante para o cliente e estou batendo a cabeça para que funcione.Alguma ideia?
EXEMPLOS:
Se o URL atingir as raízes de qualquer TLD de domínio, eles deverão ser redirecionados para o domínio .eu (http://domain.eu/), mas todo o resto deverá ir para o domínio .com (http://domain.com/)
Raízes:
http://domain.com OR
http://domain.net OR
http://domain.edu/index.php OR
http://domain.org/index.html OR
http://domain.* (* = any extension)
301 Para: http://domínio.eu
Contudo, todo o resto precisa manter a estrutura de diretórios e ser redirecionado para o outro TLD (http://domain.com).Exemplos..
De:
http://domain.net/blog/category
301 Para:
http://domain.com/blog/category
De:
http://domain.org/blog/category/post
301 Para:
http://domain.com/blog/category/post
Tudo o que tentei acaba em loops de redirecionamento ou é apenas parcialmente bem-sucedido.Por exemplo, abaixo está colocado acima dos redirecionamentos do WordPress e redireciona corretamente no sentido de que todos os URLs de destino são atingidos, mas a raiz (página inicial) apresenta um erro de loop de redirecionamento.Alguma ideia?
RewriteEngine On
RewriteBase /
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RedirectMatch ^/$ http://domain.eu
RewriteCond %{REQUEST_URI} !^/$ [NC]
RewriteCond %{HTTP_HOST} ^domain.com.au$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain.eu$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain.de$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Sou um pouco novato com htaccess, então deixe-me saber como estou fazendo isso errado, obrigado!
Solução
tente substituir o redireccionamento pelo seguinte.
RewriteCond %{HTTP_HOST} !^domain.eu$ [NC]
RewriteRule ^/?$ http://domain.eu/ [R=301,L]
Outras dicas
O WordPress redirecionará quaisquer URLs que não correspondam ao domínio na configuração do WordPress.Você precisará escrever um plugin WP ou usar proxy para obter a página inicial do outro domínio.