Como colocar o hostname no rewriterule [duplicate]

1

Nós temos algumas configurações de subdomínios, e eu quero simplificar algumas configurações do Apache - particularmente porque esses subdomínios são voláteis. De qualquer forma, estou tentando obter uma regra de reescrita que inclua o host.

Até agora eu tenho:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(.*).net.au$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%1.net.au$1 [R=302,L]

Isso se baseia no link e link

No entanto, o padrão na primeira condição não está escrito no endereço reescrito, e eu acabo sendo enviado para .net.au / where (não me deixaria postar com os https na frente) - eu perdi algo?

Rodando o apache 2.4 no Ubuntu 14.04

    
por HorusKol 10.12.2014 / 09:36

1 resposta

1

O caso simples sugerido por Ladadadada funciona quando o nome do domínio é o mesmo entre o host solicitado e o host pretendido:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=302,L]

No entanto, uma dificuldade extra é que eu também preciso ter http:// sub-domain.local redirecionado para http:// sub-domain.net.au - então, usar %{HTTP_HOST} não seria suficiente.

Eu dei outra olhada em alguns exemplos e percebi que a referência anterior% 1 só se aplica ao RewriteCond imediatamente antes de RewriteRule.

Reordenei as coisas:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(.*)(.local|.net.au)$
RewriteRule ^(.*)$ https://%1.net.au$1 [R=302,L]

E os redirecionamentos funcionam bem

    
por 10.12.2014 / 23:27