O nginx tem a $scheme
variável utilizável em suas log_format
linhas.
%H
é o protocolo de solicitação (por exemplo, "HTTP / 1.1").
Como posso fazer o mesmo com o Apache?
apache-2.2
logging
Vladimir Panteleev
fonte
fonte
mod_env
empreendimentos podem ter falhado devido a erros sintáticos .SetEnv
leva o seu variável e valor sem um sinal de igual:SetEnv URL_SCHEME http
.SetEnvIf
linha não funciona no apache <2.4.1 porque,mod_setenvif
aparentemente, não tem acesso ao ambiente ssl . quase me deixou louco em 2.2.22.mod_ssl
apenas define a variável de ambiente se você solicitar explicitamente a fazê-lo viaSSLOptions
.Por alguma razão, não consegui que os exemplos acima funcionassem, então encontrei outra maneira: você pode adicionar 2 regras de reescrita em sua configuração da seguinte maneira:
Em seguida, adicione isso à sua definição de LogFormat.
fonte
Como o esquema de URL não está diretamente disponível no formato de log apache, você pode registrar a porta canônica (por exemplo, 80/443) do servidor que atende à solicitação usando% p como alternativa:
fonte
Isso funciona para mim com o Apache 2.4.23:
%{varname}x
está disponível apenas quando o mod_ssl é carregado, consulte: https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#logformatsfonte
Defina sua saída do log e adicione% H a ela. É o mesmo para o Apache.
Então, você constrói algo
LogFormat
assim e depois há alguns definidos na configuração padrão do apache.e adicione o nome do LogFormat (neste caso "comum") ao final da sua chamada do arquivo de log
Basta procurar aqui mais informações sobre o log e aqui sobre as diferentes seqüências de formato.
fonte
%H
não faz o que eu preciso.