Eu tenho alguns domínios apontando para o mesmo servidor. Apenas um desses domínios (o principal) está realmente no meu certificado SSL. Eu incluí o seguinte no meu arquivo httpd.conf
por algum tempo para que todos eles redirecionem permanentemente para um único domínio.
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com$1 [R=301,L]
A intenção é que todos os domínios DEVEM 301 redirecionar para www.example.com
como HTTPS. No entanto, notei recentemente que esses redirecionamentos estão ocorrendo - mas como um redirecionamento 302. Eu tentei uma verificação de sanidade aqui e parece funcionar como eu esperava que deveria.
Então, para recapitular:
O que acontece: http://sub1.example.com
resulta em um redirecionamento 302 para https://www.example.com
.
O que deve acontecer: http://sub1.example.com
resulta em um redirecionamento 301 para https://www.example.com
.
Minha pergunta é, todos os domínios devem estar listados no certificado SSL para que tal redirecionamento ocorra como um 301? Eu estou apenas puxando canudos aqui.
Apenas para completar, aqui estão os cabeçalhos de solicitação / resposta da página inicial e da página de destino quando isso ocorre.
Solicitar cabeçalho para a página inicial ( sub1.example.com
):
GET / HTTP/1.1
Host: sub1.example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cabeçalho de resposta da página inicial ( sub1.example.com
):
HTTP/1.1 302 Found
Date: Wed, 04 Oct 2017 21:05:16 GMT
Server: Apache
Location: https://www.example.com/
Cache-Control: max-age=1
Expires: Wed, 04 Oct 2017 21:05:18 GMT
Content-Length: 212
Keep-Alive: timeout=5, max=150
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Solicitar cabeçalho para a página de destino ( www.example.com
):
GET / HTTP/1.1
Host: www.example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
Upgrade-Insecure-Requests: 1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.8
Cookie: <redacted>
Cabeçalho de resposta da página de destino ( www.example.com
):
HTTP/1.1 200 OK
Date: Wed, 04 Oct 2017 21:05:16 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=5, max=150
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8