.htaccess Redirecionar problemas

1

Isso é o que preciso fazer.

Redirecionar sub1.domain1.co.uk para sub2.domain2.com

Redirecionar sub2.domain2.com para sub2.domain2.com/sub-folder

Ambos funcionam, MAS isso não acontece:

Navegar diretamente para sub1.domain1.co.uk/sub-folder não redireciona para sub2.domain2.com/sub-folder .

Aqui estão meus redirecionamentos:

RedirectMatch ^/$ http://sub2.domain2.com/sub-folder

RewriteCond %{HTTP_HOST} ^sub1.domain1.co.uk$ [NC]
RewriteRule (.*) sub2.domain2.com/$1 [R=301,L]
    
por epluribusunum 30.09.2016 / 14:37

1 resposta

0

Você tem alguns problemas em potencial que poderiam explicar por que um funciona e um não ...

  1. Você está misturando as diretivas mod_alias ( RedirectMatch ) e mod_rewrite ( RewriteRule ) para redirecionamentos externos. Módulos diferentes executam em momentos diferentes durante a solicitação e trabalham de forma independente. Isso pode resultar em conflitos confusos. Se você estiver usando mod_rewrite, então é mais seguro usar o mod_rewrite por completo.

  2. Você está usando o WordPress. Portanto, você tem diretivas mod_rewrite existentes que roteiam a solicitação. Quaisquer redirecionamentos externos devem vir antes de quaisquer diretivas de roteamento do WP.

RewriteRule (.*) sub2.domain2.com/$1 [R=301,L]

Você também está perdendo o esquema (ie. http:// ) da substituição, então isso será visto como relativo e quebra.

Então, o seguinte deve vir antes de qualquer diretiva existente do WordPress, perto do topo do seu arquivo .htaccess :

# Redirect sub2.domain2.com/ to sub2.domain2.com/sub-folder
RewriteCond %{HTTP_HOST} =sub2.domain2.com [NC]
RewriteRule ^$ http://sub2.domain2.com/sub-folder [R=301,L]

# Redirect sub1.domain1.co.uk/<anything> to sub2.domain2.com/<anything>
RewriteCond %{HTTP_HOST} =sub1.domain1.co.uk [NC]
RewriteRule (.*) http://sub2.domain2.com/$1 [R=301,L]
    
por 30.09.2016 / 15:14