Redirecionamento do Apache htaccess?

3

Eu tenho um cliente que tem um domínio como this-site.com e também thissite.com Sem entrar em toda a questão, precisamos redirecionar qualquer solicitação recebida para qualquer *.this-site.com para a *.thissite.com correspondente.

Então, por exemplo:

subdomain1.this-site.com -> subdomain1.thissite.com
subdomain2.this-site.com -> subdomain2.thissite.com
subdomain3.this-site.com -> subdomain3.thissite.com

Existe uma maneira de preservar a primeira parte do URL e passá-lo para o segundo domínio?

    
por Matt Morrow 25.01.2018 / 04:56

1 resposta

1

Assumindo que todos esses subdomínios resolvam para o mesmo lugar no sistema de arquivos, então ... para redirecionar de this-site.com para thisstite.com enquanto preserva o subdomínio e o restante da URL (ou seja, URL caminho e string de consulta), você pode fazer algo parecido com o seguinte, usando o mod_rewrite, próximo ao topo do seu arquivo .htaccess na raiz do seu site:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^.]+)\.this-site\.com [NC]
RewriteRule ^ https://%1.thissite.com%{REQUEST_URI} [R=302,L]

Eu assumi HTTPS . Isso redireciona https://<subdomain>.this-site.com/<url-path>[?<query-string>] para https://<subdomain>.thissite.com/<url-path>?<query-string> .

O %1 é uma referência anterior ao primeiro grupo capturado no último CondPattern correspondente. Em outras palavras, isso corresponde ao subdomínio ( ([^.]+) parte no regex anterior) no nome do host solicitado.

Note também:

  • Isso redirecionará todos os subdomínios, incluindo www .
  • Mas não redirecionará sub-subdomínios, por exemplo. subsubdomain.subdomain1.thissite.com não será redirecionado.
  • E ele só redirecionará subdomínios, por isso não redirecionará this-site.com .

Este também é um redirecionamento temporário (302). Se isso se destina a ser permanente, altere o 302 para 301, mas somente depois de confirmar que está funcionando OK. (301s são armazenados em cache pelo navegador, portanto, podem tornar o teste problemático.)

    
por 25.01.2018 / 10:36