2011-04-07 3 views
0

우리 사무실에는 일부보고 및 평범한 주문 처리에 사용되는 로컬 웹 서버가 있습니다. 최근에 특정 워크 스테이션에 쿠키를 추가하는 빠른 코드를 추가하여 사용자가 항상 로그인하지 않도록했습니다. 내가 겪고있는 문제는 서버 자체가 추가 워크 스테이션 역할을하기 때문에 사람들이 http://127.0.0.1, http://localhost 또는 http://192.168.1.111에서 액세스 할 수 있다는 것입니다. 이렇게하면 세 개의 별개의 쿠키 도메인이 만들어집니다. 서버를 강제로 구성하도록하는 방법이 있습니까? 또는 모든 북마크를 실제 IP 주소를 가리 키도록 이동하고 사람들에게 127.0.0.1/localhost를 사용하지 말 것을 경고하는 유일한 방법입니까?여러 개의 "도메인"에서 쿠키 관리

서버가 Windows에서 Apache 2.2를 실행 중입니다.

+0

왜 서버에 고유 한 도메인 이름을 지정하지 않습니까? – Gumbo

답변

2

방문자가 올바른 호스트 이름을 통해 들어오지 않은 경우 $_SERVER['HTTP_HOST']을 확인하고 브라우저를 리디렉션 할 수 있습니다. 당신은 내부 DNS 서버를 실행하는 경우

if('servername' != $_SERVER['HTTP_HOST']) { 
    Location('http://servername/'); 
} 
+0

가능한 빠른 수정과 같은 소리가납니다. 내 .htaccess로 옮길 수도 있습니다. 'RewriteCond % {HTTP_HOST}!^192.168.1.111 $ [NC] RewriteRule^(. *) $ http : //192.168. 1.111/$ 1 [R = 301, L]' – Brandon0

+0

이것은 IMO를하는 가장 좋은 방법 인 것 같습니다. 가장 좋은 URL은 192.168.1.111이므로 코드는 Location ('http://192.168.1.1') 일 수 있습니다. – Jordan

0

일반적으로 쿠키는 IP 주소가 아닌 도메인 이름으로 설정됩니다. 도메인 이름을 사용할 때 와일드 카드 설정을 사용할 수 있습니다.

.apple.com 

그런 다음 해당 도메인의 변형은 쿠키를 허용합니다.

1

, 당신은 그것을 등록 할 필요없이 서버의 호스트/도메인 이름을 구성 할 수 있습니다 - 그것은 내부 사용을위한 이후에만, 당신은 이름을 노출 할 필요가 없습니다 나머지 세계로.

DNS 서버가 없어도 각 컴퓨터의 hosts 파일에 항목을 추가하여 name-> ip 매핑을 수행 할 수 있습니다.

해당 이름을 사용하도록 사이트를 구성하고, 모든 사람에게 그 이름을 사용하도록 알린 다음 쿠키는 해당 호스트/도메인 이름을 사용하여 설정되므로 쿠키가 처리됩니다. 그런 다음 IP 전용 히트에 대한 가상 호스트를 추가하고 새로운 명명 된 주소로 리디렉션 할 수 있습니다.

+0

내가 좋아할만한 것을하고 싶지만 내부 DNS가 없다. (라우터가 Cisco RV042 인 경우에 맞다.) 모든 PC에서 개별 HOSTS 파일을 관리하고 싶지는 않다. 우리 건물에. 또한 우리는 이 필요한 서버에 대한 액세스를 원하는 모바일 장치 (즉, iPhone 및 iPad)가 있습니다. 저렴한 내부 DNS에 대한 모든 아이디어가 있습니까? – Brandon0

+0

windows/unix/linux 서버가 있습니까? IIS에는 DNS 서버가 있으며 유닉스 박스에 Bind를 설치하는 것은 꽤 쉽습니다. 대부분의 경우 DNS 조회를 위해 모든 상자를 가리키면됩니다. 그런 다음 웹 서버의 도메인/호스트를 구성하고 사용하지 마십시오. –

+0

우리는 현재 전적으로 워크 스테이션 환경입니다. – Brandon0

관련 문제