2011-05-10 2 views
1

전달할 URL을 읽는 Google 애플리케이션 엔진 응용 프로그램에 모든 지점 (내 도메인 호스트에서 URL 전달을 통해)을 보내고 싶은 일련의 다른 도메인 이름이 있습니다. 따라서 입력 된 도메인이 원래 XYZ.com 인 경우 응용 프로그램으로 전달되면 해당 원래 도메인 이름이 무엇인지를 반환 할 수 있습니다. 파이썬 변형을 사용하고 있습니다. 각 변종을 코딩하지 않고 어떻게 최선을 다할 수 있습니까?전달 된 URL 결정

답변

1

HTTP 리디렉션을 전달하는 경우 Referer 헤더를 확인할 수 있습니다.

당신이 DNS가 (자신의 도메인을 통해 호출 및 .appspot.com에서 일을하고 예를 들어, 응용 프로그램 사이의 구별) 해결을 의미하는 경우, SERVER_NAME 환경 변수가 (os.environ["SERVER_NAME"]는) 그 (www.example.com는 예를 들어) 요청을 발행하는 데 사용되는 도메인을 저장 .

http://en.wikipedia.org/wiki/HTTP_referrer

그러나 이것은 100 % 해결책이 아니다 : 당신은 단지 리퍼러를 확인할 수

0

당신이 자바 스크립트 리디렉션을 사용하는 경우.

하나의 appengine 인스턴스에 여러 개의 도메인이 있고 사용자가보고있는 도메인을 알고 싶은 경우 요청 객체에서 호스트 이름을 확인할 수 있습니다.

2

일반적으로 301/302 리디렉션의 대상은 리디렉션을 발행 한 URL을 결정할 수 없습니다. 사용자가 클라이언트 쪽 코드로 리디렉션되는 경우 참조 페이지가 "Referer"요청 헤더에 있어야합니다. 서버 측 리디렉션의 경우 사용자 에이전트가 Referer 헤더를 채우거나 재정의하는 것이 표준이라고 생각하지 않습니다.

여러 도메인이 App Engine 앱을 가리 키려면 전달보다는 custom domains으로 설정하십시오. 이 경로를 사용하면 맞춤 도메인이 사용자의 주소 표시 줄에 남게되며 방문자가 사용중인 맞춤 도메인을 확인하기 위해 호스트 헤더를 간단히 확인할 수 있습니다.