我想知道对于我希望用户输入
的情况,最好的方法是什么并重定向(301或302)到
http://someotherserver/applications/something/modules/default.aspx?id=20
对于.net 3.5和IIS 7我找到了一些解决方案,但不幸的是我在Windows 2003上遇到了.net 3.0和IIS 6.0,如果可能的话我不想在服务器上安装任何东西。我可以更改虚拟目录的设置,如果必须更改整个站点。
HTTPModules和web.config只是ASP.net如果我没有完全弄错,那么因为每次默认不将/ 20发送到ASP.net,这无济于事?
任何人都可以给我一些提示,我可以设置类似的东西吗?
答案 0 :(得分:3)
我看到没有将301重定向直接放入IIS管理器的唯一方法是使用通配符映射
答案 1 :(得分:1)
您可以获得ASP的帮助。
使用内容在您的某个文件夹中创建一个404.asp文件: -
<%
Dim id : id = CLng(Mid(Request.QueryString, InStrRev(Request.QueryString, "/")+1))
Response.Redirect "http://someotherserver/applications/something/modules/default.aspx? id=" & id
%>
在IIS管理器中的某些文件夹的自定义错误调整为URL和/something/404.asp
请注意,传递给404客户错误页面的查询字符串值如下所示: -
404; http://myserver:80/something/20
编辑:或者您可以使用404.ashx自定义错误页面,然后使用更熟悉的.NET代码。
答案 2 :(得分:1)
将.*
扩展名映射到与应用程序配置中的虚拟目录文件映射中的.aspx
相同的DLL。然后在web.config httpHandlers部分中,将URL映射到该类型。
答案 3 :(得分:1)
我们遇到的情况是.Net Routing正在我们的开发PC上运行,而不是在IIS 6和Windows 2003的测试和生产服务器上运行。这解决了我们的问题。