我的自定义 URL 重写设置遇到了一些困难。我没有使用任何 3rd 方工具来管理它,只是通过查看每个请求并处理它来使用 global.asax。
我使用它的方式是: www.mydomain.com/site/google.com
此页面包含有关网站“google.com”的信息。我在 URL 中使用实际域。这一切都很好。
我已经简化了我正在使用的代码,只是为了向您展示它是如何工作的示例:
Dim myContext As HttpContext = HttpContext.Current
Dim URL As String = myContext.Request.ServerVariables("URL")
If URL.ToLower.Contains("/site/") Then
URL = URL.Trim("/")
Dim strURL As String = URL.ToLower.Split("/")(1)
Redirect301("/site.aspx?url=" & strURL)
Exit Sub
End If
我遇到的问题是某些域扩展,页面只会加载自定义 404 Not Found,我不知道原因是什么。
无法加载的页面示例:
- /site/google.ad
- /site/google.cd
我猜系统认为 .cd 和 .ad 文件是实际的物理文件,当它没有找到它们时,它会显示自定义 404 错误。看起来请求实际上并没有传递到 global.asax。在本地环境中工作时,它们实际上加载得很好,但只有在实时服务器上才会出现这个问题,这就是为什么试图解决这个问题是一场噩梦。
我发现的另一个问题是加载以下 URL:
- /site/prn.com
这再次显示 404 错误,但这次不是我创建的自定义错误,而是实际看起来很难看的 .net 404 错误页面。这在本地环境中也可以正常工作。
我必须进行一些 IIS 设置或代码更改才能尝试解决此问题。
感谢您的时间 :)
秋