mod_rewrite retorna um 301 OK, não movido permanentemente?

1

Recentemente, configurei o monitoramento para o meu servidor mod_rewrite com ajuda na questão Correspondência de padrões em várias linhas .

De vez em quando - não sei o que desencadeia isso - recebo um HTTP/1.1 301 OK em vez de um HTTP/1.1 301 Moved Permanently . Por quê?

Atualmente, isso faz com que meus scripts criem um falso positivo. As reescritas são da seguinte forma.

RewriteRule ^ http://www.mydomain.org%{REQUEST_URI} [R=301,L]

A regra de reescrita ainda está funcionando e eu ainda recebo um 200 código de volta de www.mydomain.org.

Eu posso atualizar as expressões regulares para combinar em um 301 OK, mas eu realmente gostaria de saber por que isso mudaria.

Estou executando a versão mais recente do CentOS 5 no servidor, se for importante.

    
por Tim Brigham 03.12.2013 / 15:20

3 respostas

0

A linha de status http consiste em duas partes: um número e uma mensagem. o número é para a máquina usar, a mensagem para as pessoas durante a depuração. o número é a parte importante. a mensagem pode e irá variar de acordo com o idioma, servidor, script, etc. A reescrita mod configura a mensagem para OK com uma reescrita bem-sucedida. Isto é bom. determine sua ação com base no número.

    
por 03.12.2013 / 17:11
1

O problema que você tem pode estar relacionado à implementação das 'frases de razão' incluídas no PHP ou Apache.

De acordo com o que eu sei, você pode ter diferentes 'frases de razão' em relação à versão do PHP que você está usando. fcgid ou php-cgi podem ter diferentes frases de razão implementadas do que a implementada pelo Apache.

Você também pode ter uma função de cabeçalho php alterando essa frase de razão em algum lugar em suas frentes, e você pode não ter visto se você tiver muitos, e se você usar balanceamento de carga (isso poderia explicar o motivo pelo qual ele não retorna) a frase da razão do wron o tempo todo).

O mais importante no seu caso é ter o código de retorno adequado: 301. Se eu fosse você, modificaria minha verificação de monitoramento para lidar com o código de resposta retornado e não com o motivo da frase retornada.

My2cents

    
por 03.12.2013 / 16:04
0

Tudo bem. Poderia dizer "301 pickles" e ainda ficar bem. A única ação tomada por qualquer cliente deve estar no código numérico.

Normalmente, seu cabeçalho de aceitação ou cabeçalho de conteúdo altera a frase legível por humanos. Eu vi alguns servidores retornar "301 OK" quando eles não podem determinar o conteúdo aceitável para enviar de volta. É um pouco estranho ver como o cabeçalho de resposta não faz parte do conteúdo, mas eu já vi eles fazerem isso de qualquer maneira.

Em suma, o seu código de resposta é bom, desde que seja um 301 as palavras depois que não importa um bit. Para implementar uma verificação adequada, seus scripts devem desativar o número. As palavras são arbitrárias.

    
por 03.12.2013 / 17:21