【问题标题】:Classic ASP Redirecting Title Issue经典 ASP 重定向标题问题
【发布时间】:2023-03-14 22:45:01
【问题描述】:

只是想知道 ASP 在执行 Server.Transfer 两个级别时有哪些限制?所以一个页面转移到另一个页面,然后转移到另一个页面。

这是我们当前的设置。为了取悦 SEO,我们创建了包含关键字的“假” URL。然后我们有一个 404 错误处理程序 (IIS) 来处理这些,重定向到另一个 ASP 页面,该页面从 URL 中提取一些关键信息,并执行 Server.Transfer 到我们的“真实”页面。由于本文范围之外的原因,我需要从该页面进行进一步的 Server.Transfer。我们现在所在的页面需要设置页面标题。

这可能吗?

【问题讨论】:

  • 是什么阻止您在第 3 页设置页面的页面标题?你有什么问题吗
  • 我认为服务器端代码不可能。不过你可以使用 JavaScript..

标签: asp-classic server.transfer


【解决方案1】:

你想要的肯定是可能的。

当然,有一些限制...但是,限制不在于您计划菊花链的服务器传输数量...只要确保您最终不会造成恶性循环 :)

限制如下; server.transfer(和 server.execute 也一样)无法访问前一页的变量上下文。

因此,如果您在 page1 中设置了一个变量说 Age=50,并且 page1 执行 server.transfer 到 page2,则不要期望 page2 知道关于 page1 声明和设置的 Age 变量的任何信息。事实上,你甚至可以在 page2 中对同一个变量(Age)进行 Dim,不会报错。这是因为,.transfer 页面和 .execute 页面都不像 [!--include...] 文件那样工作......

那该怎么办?您如何在计划使用 server.transfer 以菊花链方式连接的那些页面之间共享信息?答案是使用会话变量!这是一种有效的方法..(当然,您可能会特意写入数据库或文本文件,但为什么呢?)

您的 page2 和 page3 可以从原始 page1 共享的唯一另一件事是查询字符串,以及发布和 cookie 数据!这些请求集合在传输(或执行)的页面中仍然可用。这意味着如果原始页面(page1)被点击为 page1.asp?age=,您可以在 page2 和 page3 中执行 request("age") 99

无论如何,回到你的组织。问题...您想要的当然是可行的...
只是不要在 page1 中设置任何变量,只需使用会话变量...

完成最后一页后,不要忘记清理会话变量。

希望对你有帮助...

【讨论】:

  • 谢谢队友,我想我可能没有完全准确地解释我要做什么,但我还是想通了:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-11
  • 2018-12-09
  • 2010-10-08
相关资源
最近更新 更多