English 中文(简体)
使用.NET 3.0和IIS 6.0进行“URL重写”/路由。
原标题:
  • 时间:2008-12-17 15:42:02
  •  标签:

我想知道在用户需要输入时,最好的方法是什么。

将此翻译成中文:http://myserver/something/20 http://myserver/something/20

并被重定向(301或302)到

将此翻译成中文:http://someotherserver/applications/something/modules/default.aspx?id=20 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。

有人能给我一些提示,我可以在哪里设置类似的东西吗?

最佳回答

我所见过的不直接在IIS管理器中放置301重定向的唯一方法是使用通配符映射。

链接

问题回答

在应用程序配置的虚拟目录文件映射中,将“.*”扩展名映射到与“.aspx”相同的DLL。然后在web.config的httpHandlers部分,将URL映射到类型。

您可以寻求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管理器中的“something”文件夹的自定义错误中,将URL和 /something/404.asp调整为错误路径。

请注意,传递给404客户错误页面的查询字符串值类似于:-

404;http://myserver:80/something/20 (Note: This sentence seems to be a computer error message, which does not require translation. The Chinese version is already in the same format.)

编辑:您可以使用404.ashx自定义错误页面,然后使用更加熟悉的.NET代码。

  1. In IIS, right click on the Virtual Directory, select Properties.
  2. Under the Directory tab, click the Configuration... button.
  3. Under the Mappings tab, under the Wildcard application maps (order of implementation): click the Insert... button.
  4. Browse and select C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll, leave Verify that the file exists unchecked.
  5. Move Up aspnet_isapi.dll to the top of the list.
  6. Click Ok, Ok, and try it. Try recycling the application pool if you don t see it work.

我们遇到的情况是,.Net Routing在我们的开发PC上正常工作,但在安装有IIS 6和Windows 2003的测试和生产服务器上却不工作。这个解决方案解决了我们的问题。





相关问题
热门标签