2012-09-11 3 views
0

Linux + iptables를 사용하는 LAN 용 인터넷 액세스 도구를 작성하여 사용자가 웹 페이지에 액세스하려고 할 때마다 로그인 페이지로 리디렉션합니다. 이 로그인 페이지는 사용자와 비밀번호를 묻고 인증에 성공하면 iptables 규칙을 제거하여 후속 요청이 원래 의도 된 웹 페이지로 이동하게합니다. 내가 http://www.abc.com에 가면브라우저의 리디렉션

  1. , 내 기본 GW는 제가 성공적으로 로그인
  2. 10.0.10.10/login.php 리디렉션 :

    상황이다.
  3. http://www.abc.com으로 다시 이동하려고하면 브라우저가 자동으로 10.0.10.10으로 나를 보내고 있습니다. 이는 일종의 캐싱과 같습니다.
  4. abc.com이 아닌 다른 페이지로 들어가려고하면 예상대로 작동합니다.

"기억 된"리디렉션 규칙을 제거하도록 브라우저에 알릴 수 있습니까?

+0

이 – chhameed

+0

당신이 사용하는 브라우저에 따라 달라집니다 당신의 HTML 헤드 부분이다 추가 할 수 있습니다. 웹 개발 도구로 FireFox를 사용하여 캐시를 사용하지 않는 것이 좋습니다. https://addons.mozilla.org/en-us/firefox/addon/web-developer/ –

+0

메타 태그에서는 작동하지 않습니다. 그것은 나의 첫번째 시도였다. – caruizdiaz

답변

1

하드 새로 고침 캐시가 필요합니다.

일반적으로 당신이 할 수 CTRL + F5 또는 CTRL + R과

하거나 같은 페이지에 두 번째 리디렉션을 확인하기 위해 규칙을 변경하지만 일부 # 조각 식별자

예 : 사용자가 abc.com을 입력하고 abc.com으로 다시 연결하려고 시도하고 로그인했을 때로 리디렉션 된 것으로 확인되면 로그인시 리디렉션됩니다.

+0

문제는 브라우저가 abc.com에 연결하지 않고 직접 LAN IP로 연결되기 때문에 사용자가 의도 한 위치를 볼 수 없다는 것입니다. – caruizdiaz

+0

그래서 뭐? 당신은 귀하의 LAN에서 리디렉션 .. 캡처 및 거기에서 리디렉션, 2 리디렉션됩니다. –

+0

죄송합니다, 귀하의 의견이 보이지 않습니다. 내가 window.location = 'http://abc.com'할; 리디렉션 루프가 발생합니다. 다른 브라우저에서 동일한 작업을 수행하면 작동합니다. Chrome에서 너무 긴 리디렉션 규칙을 기억하고 있습니다. – caruizdiaz

0

당신은 필요한 것을 할 javascript를 사용하여 브라우저 기록에서 해당 페이지/URL을 제거 할 수 있습니다. 당신이 사용하는 경우 와 사용자가 브라우저에서 버튼을 다시 클릭 할 때 또한 그가 다시 그/그녀가 로그에 있었던 이전 페이지로받지 않습니다.

+0

어떻게하면됩니까? AFAIK, 할 수 없습니다. – caruizdiaz

3

http://www.w3schools.com/tags/att_meta_http_equiv.asp

을 기반으로 페이지가 늘 캐시 이러한 메타 태그하지도 않습니다 브라우저 나 프록시 서버 :

<meta http-equiv=”expires” content="Wed, 22 Jul 1981 16:00:00 GMT" /> 
<meta http-equiv="pragma" content="no-cache" /> 
<meta http-equiv="cache-control" content="max-age=0" /> 
<meta http-equiv="cache-control" content="no-store" /> 
<meta http-equiv="cache-control" content="no-cache" />