2012-02-09 4 views
0

ASP에서 Server.Transfer를 2 단계로 수행하면 어떤 한계가 있는지 궁금하십니까? 따라서 한 페이지가 다른 페이지로 전송 된 다음 다른 페이지로 전송됩니다.Classic ASP 리디렉션 제목 문제

다음은 현재 설정입니다. SEO를 기쁘게하려고 키워드를 포함하는 '가짜'URL을 만들었습니다. 그런 다음 404 오류 처리기 (IIS)를 선택하여 다른 ASP 페이지로 리다이렉션하여 URL에서 일부 주요 정보를 추출하고 "실제"페이지에 Server.Transfer를 수행합니다. 이 게시물의 범위를 벗어나는 이유로이 페이지에서 추가 Server.Transfer를 만들어야합니다. 우리가 지금하고있는 페이지는 페이지 제목을 설정해야합니다.

이것이 가능합니까?

+0

3 페이지에서 페이지 제목을 설정하지 않으려는 것이 무엇입니까? 어떤 문제에 직면 해 있습니까 – Ravia

+0

서버 측 코드로는 가능하지 않다고 생각합니다. 그래도 JavaScript를 사용할 수 있습니다. –

답변

1

확실히 원하는 것은 가능합니다.

물론 몇 가지 제한이 있습니다 ... 그러나 제한 사항은 데이지 체인으로 연결할 서버 전송 횟수에 제한이 없습니다 ... 단지 악의적 인 사이클을 생성하지 않도록하십시오.

제한은 다음과 같습니다. server.transfer (및 해당 문제의 경우 server.execute)는 이전 페이지의 변수 컨텍스트에 액세스 할 수 없습니다.

변수를 page1에 Age = 50으로 설정하고 page1이 page2로 server.transfer를 수행하는 경우 page2에서 선언 한 해당 Age 변수에 대해 아무것도 알지 못할 것입니다. 사실, page2에서 동일한 변수 (Age)를 희미하게조차도 오류가 발생하지 않습니다. .transfer'ed 또는 .execute'd 페이지가 [! - include ...] 파일처럼 작동하지 않기 때문입니다 ...

그래서 어떻게해야합니까? server.transfer를 사용하여 데이지 체인으로 연결할 페이지간에 정보를 어떻게 공유합니까? 대답은 세션 변수를 사용하는 것입니다. 그것은 하나의 효과적인 방법입니다. (당연히 당신은 db 또는 텍스트 파일에 글을 쓰려고 할 수도 있지만 그 이유는 무엇입니까?)

page2와 page3이 원본 페이지에서 공유 할 수있는 유일한 것 1 querystring이며 게시 & 쿠키 데이터입니다. 이러한 요청 컬렉션은 전송 된 (또는 실행 된) 페이지에서도 계속 사용할 수 있습니다. 즉, 원본 페이지 (page1)가 page1.asp? age =로 검색되면 page2와 page3에서 요청 ("age" 99

어쨌든 귀하의 조직으로 돌아옵니다. 질문 ... 당신이 원하는 것이 확실히 가능합니다 ...
page1에 변수를 설정하지 말고 그냥 세션 변수로 작업하십시오 ...

그리고 세션 바운스를 정리하는 것을 잊지 마십시오. 최종 페이지에서 수행됩니다.

희망이 도움이 될 것입니다 ...

+0

감사합니다. 내가 뭘 하려는지 완전히 설명하지는 못했지만, 그럼에도 알아 냈습니다. D –