Fiz o seguinte aqui: QQ tráfego com destino a porta 80 redireciono para meu apache em uma porta diferenciada (800). No apache tenho os seguintes virtual hosts configurados:
<VirtualHost MEU_IP_AQUI:800> RewriteEngine On RewriteCond "%{HTTP_HOST}" "!^meusitedeautenticacao.com.br$" [NC,OR] RewriteCond "%{SERVER_NAME}" "!^meusitedeautenticacao.com.br$" [NC] RewriteRule "(.*)" "http://meusitedeautenticacao.com.br:801/index.php?url=%{HTTP_HOST}$0" [R] </VirtualHost> <virtualHost 200.99.34.1:801> ServerName meusitedeautenticacao.com.br DocumentRoot /usr/local/www/apache22/data/login #RewriteEngine on #RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) #RewriteRule .* - [F] ErrorLog /var/log/apache/httpd-error-login.log CustomLog /var/log/apache/httpd-access-login.log combined </VirtualHost> A regra IPFW desvia o tráfego paga a porta 800, o apache pega esse tráfego e reenchaminha para o mesmo endereço, só que na página 801... aqui exibo o form de autenticação para o usuário. Ele digita login/senha e o sistema libera o acesso para ele. A única forma que consegui para não ter problemas de exibir a página de login novamente foi aguardar um tempo de 15 segundos após a autenticação do usuário. Após o login eu uso o seguinte: header(refresh: 15; url=http://".$_POST["url"]); Para não deixar o usuário doido, achando que não tá funcionando, fiz um contador em javascript que faz uma contagem regressiva (de 15s até 0s) do tempo que falta para o usuário acessar a página solicitada originalmente, com a mensagem, "AGUARDE, VOCÊ SERÁ REDIRECIONADO PARA ..... EM XX SEGUNDOS" []s Fabrício F. Kammer -----Mensagem original----- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de m3 BSD Enviada em: quarta-feira, 12 de julho de 2006 14:59 Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR) Assunto: Re: [FUG-BR] Captive Portal Poxa galera... legal... valeu as dicas :) Bem, vamos lá, obrigado Sergio (WGO) (Eu sou o cara que esta em contato com vc sobre o ispadmin hehehe, lembra-se?)... Obrigado pela dica. Fabricio, legal o que vc esta fazendo, vou adaptar para php. Patrick (eae Eksffa :) ).. nao entendi a do pre-processador eeheh.. poderia explicar? SkyWarrior, eae manow.. :).. tipo.. legal essa parada do authpf e appletjava... poderiamos bater um papo sobre isso em pvt? E como esse applet esta se comportando com o java sobre linux/bsd e firefox? funfa certinho? Nao eh igual aos applets do BB.com.br nao neh? hehehe Bem... segundo passo: :) Se o cliente digita www.uol.com.br no browser, o freebsd pega o trafego, joga pro apache e legal, agora, se o cara digita www.uol.com.br/index2.html, ae fudeu, pq o apache tenta achar o index2.html (ou qquer coisa que o cara colocar na url depois do /), e nao mostra a pagina de autenticacao. Outro problema, se o cara digita www.google.com.br, eu redireciono pro apache, gero o form dinamica, autentico, e tento fazer um meta-http refresh da vida, pro www.google.com.br, as porcarias de browser pegam a pagina de autenticacao novamente pq esta no cache do browser, ou seja, o cliente tem que fechar o browser e abrir de novo pra poder entrar no www.google.com.br ou entao pressionar control+f5 (IE da vida)... Possiveis, solucoes, ao inves de usar o apache ou outro web server, fazer um (jah brinquei um pouco com isso com python) que pega a query string e remova tudo que vem depois do /, tipo, o cara digita www.uol.com.br/batepapo.html, o python pega e remove o /batepapo.html, isso resolve o primeiro problema... alguma dica? hehehhe Atenciosmente Mario Augusto Mania <m3BSD> [EMAIL PROTECTED] Cel.: (43) 9938-9629 ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd