Классический ASP, перенаправляющий проблему названия - PullRequest
0 голосов
/ 09 февраля 2012

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

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

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

1 Ответ

1 голос
/ 10 февраля 2012

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

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

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

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

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

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

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

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

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

...