especialistas em htaccess:Redirecione todos, exceto root, para um TLD, redirecione root para outro TLD - WordPress

StackOverflow https://stackoverflow.com//questions/10695777

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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top