【问题标题】:Httphandler for ASP Classic?ASP Classic 的 Httphandler?
【发布时间】:2014-07-22 20:40:28
【问题描述】:


ASP Classic 中是否有任何方法可以在 HTTP 请求到达该页面之前捕获它?就像在 ASP.Net 中一样,我们可以在 Application_BeginRequest 处捕获请求。

实际上,如果从某个目录询问文件,我正在尝试将请求重定向到其他页面。我的应用程序托管在 IIS6 上。而且我认为默认情况下 IIS6 不支持 url 重写。目录浏览已被禁用。

如果可以将 web.config 放在该特定目录中以重定向到其他页面,那就太好了。

e.g.

Original Requests: 
Https://stackoverflow.com/NoReadWriteFolder/file1.asp
Https://stackoverflow.com/NoReadWriteFolder/file2.html etc

and I'd like to redirect to 
Https://stackoverflow.com/ReadOnlyFolder/someOtherFile1.asp
Https://stackoverflow.com/ReadOnlyFolder/someOtherFile2.html

我用谷歌搜索,但到目前为止没有运气,任何线索将不胜感激。

【问题讨论】:

  • 您可以设置 IIS 以运行带有 html 扩展名的 asp 页面。

标签: asp-classic httphandler url-redirection http-pipelining


【解决方案1】:

对于 IIS6,我使用了 Ionic 的 Isapi 重写过滤器

https://iirf.codeplex.com/

它支持 URL 重写和重定向,应该完全满足您的需要。

在示例和帮助页面上,您可以重新定向示例。

【讨论】:

  • :感谢您提供重写库链接。是的,这是迄今为止我得到的唯一解决方案。实际上,我正在尝试找到一种无需在服务器上安装某些东西的方法。
  • 对于 II6,没有用于 URL 重写的本机选项,我推荐这个应用程序,我已经使用它多年没有问题。
【解决方案2】:

背景: 我的应用程序为使用相同应用程序的不同公司(实际上是国家)运行。

我使用名为 default.asp 的包含文件,它作为我所服务的所有脚本的标准包含运行。我在 URL 中捕获域请求,检测这是哪家公司,然后重定向到我构建的包含公司代码和在整个会话期间添加到 URL 的“URL 前缀”的 URL。

为此,我使用 request.servervariables 读取 URL,设置 Session 变量,计算出我的 URL 前缀,并在此基础上创建修改后的 URL,然后再进行 response.redirect。

我希望这可以让您对自己的情况有所了解。

【讨论】:

    猜你喜欢
    • 2016-01-20
    • 2017-02-27
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    相关资源
    最近更新 更多