Pergunta

Eu estou puxando meu cabelo para fora sobre o que deve ser um problema insanamente simples. Estamos executando o WebSphere IHS (Apache) através de um F5 BigIP. BigIP está fazendo a tradução https para nós. Nossa url (mudou para web, não é válido) é https://superniftyserver.com/lawson/portal .

Quando alguém digitar só que sem a barra depois de portal, Apache assume "portal" para ser um arquivo e não um diretório. Quando o Apache descobre o que é, ele envia a 301 Permanente Redirect. Mas desde Apache conhece apenas http, ele envia a URL como http://superniftyserver.com/lawson/portal/, que, em seguida, cria problemas.

Então, eu tentei uma mudança de nível do servidor httpd.conf para mod_rewrite, este é um dos dezenas de combinações que eu tentei.

RewriteEngine on RewriteRule ^ / Lawson / portal (. *) / Lawson / portal / $ 1

Eu também tentei RewriteRule ^ / Lawson / $ portal / Lawson / portal /

Entre muitas outras coisas ... O que eu estou ausente?

Foi útil?

Solução

Se você não pode obter uma resposta sobre a sintaxe RewriteRule, aqui estão duas outras opções para você: Escrever um iRule personalizado em BigIP (veja F5 DevCentral ) que procura 301 respostas e convertê-los em SSL; deixar passar a URL no seu servidor WebSphere e fazer um redirecionamento programático que envia HTTPS. No entanto, porque F5 finaliza a conexão SSL, você tem que definir um cabeçalho personalizado que você configure (veja PQ86347 ) para que o Java request.getScheme () funciona como seria de esperar.

Outras dicas

Fixed!

SOL6912: Configurando um perfil HTTP para reescrever URLs para que os redirecionamentos de um servidor HTTP especificar o protocolo HTTPS


Atualizado: 8/7/07 0:00

servidor virtual A ClientSSL é tipicamente configurado para aceitar conexões HTTPS de um cliente, descriptografar a sessão SSL, e enviar o pedido HTTP não criptografado para o servidor web.

Quando um URI solicitado não incluir uma barra (uma barra, tais como /, no final do URI), alguns servidores web gerar um redirecionamento cortesia. Sem uma barra no final, o servidor web irá primeiro tratar o recurso especificado na URI como um arquivo. Se o arquivo não pode ser encontrado, o servidor web pode procurar um diretório com o mesmo nome e, se for encontrado, envie um HTTP 302 redirecionamento resposta de volta para o cliente com uma barra. O redirecionamento será devolvido ao cliente em modo HTTP em vez de HTTPS, fazendo com que a sessão SSL falhar.

A seguir é um exemplo de como uma resposta de redirecionamento HTTP 302 faz com que a sessão SSL falhar:

· Para solicitar uma sessão SSL, um usuário digita https://www.f5.com/stuff, sem uma barra final.

· O navegador do cliente envia uma solicitação SSL para o servidor virtual ClientSSL, que reside no sistema BIG-IP LTM.

· O sistema LTM BIG-IP, em seguida, decifra o pedido e envia um comando GET / material para o servidor web.

· Uma vez que o arquivo / coisas não existem no servidor web, mas existe uma coisa / diretório / virtual, o servidor web envia uma resposta de redirecionamento HTTP 302 para o diretório, mas acrescenta uma barra para o recurso. Quando o servidor web envia a resposta de redirecionamento HTTP 302, especifica HTTP (não HTTPS).

· Quando o cliente recebe a resposta de redirecionamento HTTP 302, ele envia uma nova solicitação para o servidor virtual BIG-IP LTM que especifica HTTP (não HTTPS). Como resultado, a conexão SSL falhar.

Configuração de um perfil HTTP para reescrever URLs

Em BIG-IP LTM versão 9.x você pode configurar um perfil HTTP para reescrever URLs para que os redirecionamentos de um servidor HTTP especificar o protocolo HTTPS. Para isso, execute o seguinte procedimento:

  1. Faça login no utilitário de configuração.

  2. Clique tráfego local.

  3. Clique em Perfis.

  4. Clique no botão Criar.

  5. Digite um nome para o perfil.

  6. Escolha http do Pai Perfil drop-down menu.

  7. Configurações, definir Redirect Rewrite a todos, Matching, ou nós, dependendo de sua configuração

Por exemplo:

o Escolha Tudo para reescrever qualquer HTTP 301, 302, 303, 305, ou 307 redirecionamentos para HTTPS

o Escolha condizer para reescrever redireccionamentos quando o percurso e componentes de consulta URI do pedido e o redirecionamento são idênticas (excepto para a barra à direita)

o Escolha Nó de reescrever redireciona quando o redirecionamento URI contém um endereço IP nó em vez de um nome de host, e você deseja que o sistema para mudá-lo para o endereço do servidor virtual

  1. Clique em Concluído.

Você deve agora associar o novo perfil HTTP com o servidor virtual ClientSSL.

Tente isto:

# Trailing slash problem
RewriteCond    %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d
RewriteRule    ^(.+[^/])$           https://<t:sitename/>$1/ [redirect,last]
LoadModule rewrite_module                modules/mod_rewrite.so

Certifique-se que a linha está em algum lugar que você httpd.conf

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top