2012-02-09 2 views
0

Просто интересно, какие ограничения существуют в ASP, выполняющем Server.Transfer два уровня? Таким образом, перенос страницы на другую страницу, которая затем переносится на еще одну страницу.Классический ASP Перенаправление Заголовок Выпуск

Вот наша текущая установка. В попытке угодить SEO, мы создали «поддельные» URL-адреса, содержащие ключевые слова. Затем у нас есть обработчик ошибок 404 (IIS), перенаправляющий на другую страницу ASP, которая извлекает некоторую ключевую информацию из URL-адреса и делает Server.Transfer на нашей «реальной» странице. По причинам, выходящим за рамки этого сообщения, требуется, чтобы я сделал еще один Server.Transfer с этой страницы. На странице, на которой мы сейчас находимся, нужно задать заголовок страницы.

Возможно ли это?

+0

что мешает вам установить заголовок страницы страницы на третьей странице? Вы столкнулись с какой-либо проблемой. – Ravia

+0

Я не думаю, что это возможно с кодом на стороне сервера. Вы можете использовать JavaScript, хотя .. –

ответ

1

То, что вы хотите, безусловно, возможно.

Несомненно, существуют некоторые ограничения ... но ограничения не на количестве серверных передач, которые вы планируете создать цепочку ... Просто убедитесь, что вы не создаете порочный круг :)

ограничение заключается в следующем: server.transfer (и server.execute тоже, если на то пошло) не может получить доступ к контексту переменной предыдущей страницы.

поэтому, если вы задали переменную say Age = 50 в page1 и page1, сервер.переведите на страницу2, не ожидайте, что страница2 ничего не узнает об этой возрастной переменной, объявленной &, заданной страницей1. Фактически, вы можете даже Dim ту же переменную (Age) на стр. 2, вы не получите ошибку. Это связано с тем, что ни страницы .transfer'ed, ни .execute'd не работают, как файлы [! - include ...] ...

А что делать? Как вы обмениваетесь информацией между теми страницами, которые вы планируете использовать в цепочке с помощью server.transfer? Ответ заключается в использовании переменных сеанса !. Это один из эффективных способов ... (конечно, вы можете пойти на ваш путь писать в db или текстовые файлы, но почему?)

Единственная другая вещь, которую ваши страницы2 и стр. 3 могли бы поделиться с исходной страницей1 это querystring, и сообщение & данные cookie! Эти коллекции запросов будут по-прежнему доступны на перенесенных (или выполненных) страницах. Это означает, что вы можете выполнить запрос («возраст») на страницах 2 и страницы 3, если исходная страница (стр. 1) была удалена как page1.asp? Age = 99

в любом случае, возвращаясь к вашей организации. вопрос ... что вы хотите, безусловно, можно ...
просто не устанавливайте никаких переменных на стр. 1, просто работайте с переменными сеанса ...

и не забудьте очистить сеансовые вары, когда вы выполняются на последней странице.

надеюсь, что это поможет вам ...

+0

спасибо помощнику, думаю, что я, возможно, не дал абсолютно точного объяснения того, что я пытаюсь сделать, но тем не менее я понял: D –