【问题标题】:Single Page ASP application and Routing单页 ASP 应用程序和路由
【发布时间】:2014-10-08 21:16:27
【问题描述】:

我认为这会很简单,但事实证明很难找到我在网上寻找的信息...我有一个使用 ASP 的单页网站,我想使用查询字符串,但我不想拥有将 Default.asp 放在 URL 中。所以目前的 URL 是这样的:

http://localhost/default.asp?id=4

但我想要类似的东西:

http://localhost/watch?id=4

我没有使用 Visual Studio,因此希望能够使用简单的文本编辑器来完成此操作。我对 ASP 也不是很熟悉,所以我对这些概念非常陌生。

【问题讨论】:

标签: asp-classic routing


【解决方案1】:

你有两个选择。

1:使用 Microsoft 的 URLRewrite 扩展,可以找到 here

您可以为模式设置入站规则:watch 使用通配符,并添加在文件或目录实际存在时禁用规则的条件。 (默认情况下,URL 重写会设置此选项),然后创建指向 default.asp 的操作并选中 Append query string 框。然后它将所有/watch url 路由到您的default.asp 页面,并允许您的脚本像往常一样读取所有查询字符串。

2:使用自定义的 404 错误页面:

将您的错误 404 页面指向 IIS 中的 default.asp 页面,但您需要使用 Request.ServerVariables("Querystring") 解析出实际请求的 URL,因为 404 错误页面无法使用 @987654328 获取您的查询字符串@ 就像您可以在选项 1 中执行的操作一样。您必须创建自己的 url 读取系统,因为作为查询字符串返回的数据类似于 ?404;http://www.domain.com/watch?id=12312,而不是选项 1 中的 ?id=12312

我个人会使用第一个选项,即使它需要安装扩展程序,它更灵活,不会像选项 2 那样用 2 个单独的请求填充日志,而且它对您的脚本更透明,而不是像使用选项 2 一样创建自己的 url 阅读系统。

【讨论】:

    猜你喜欢
    • 2019-03-05
    • 2015-12-08
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 2012-01-01
    相关资源
    最近更新 更多