我想要实现的目标:
使用asp.net应用程序拦截对.asp文件的请求 然后重新将网址写入搜索引擎友好的内容中 然后将请求传递到asp.dll以处理请求。
我是如何尝试实现它的:
我正在尝试通过
让smartgencia url重写为经典的asp应用程序工作我的局限:
听起来像是可以通过编写HTTPModule来完成吗?
我考虑过301重定向,但我担心谷歌排名问题。
答案 0 :(得分:2)
由于管道的工作方式,.NET HttpModule无法将请求转发到II6中的Classic ASP。当您的.NET模块执行时,您处于ASP.NET处理程序中,无法传输到ASP处理程序。
IIS7具有集成管道,允许您让.NET HttpModule将请求重写为Classic ASP处理程序。
您可以使用自定义404处理程序清除响应中的404状态,并执行Server.Transfer或Server.Execute您的页面。唯一的问题是你不能传递查询字符串参数,所以你需要解析页面请求并手动提取变量。
我使用Smart404的修改版本来处理SEO友好网址,移动文件等。他们称该功能为“virtual_aliases”。