C# 如何在没有URL路由或URL重写的情况下转换ASP.NET URL?
我在IIS6上使用ASP.NET 2.0,因此无法使用system.web.routing。我试过几个URL重写器,但都没有达到我的目的 我基本上需要用最少的IIS配置将URL1转换为2(读取/解析然后重定向),因为我没有重新配置web服务器的完全权限(即IIS6上的ISAP或安装第三方扩展/库)。我无法将URL转换为3,因为所有物理链接都将中断C# 如何在没有URL路由或URL重写的情况下转换ASP.NET URL?,c#,asp.net,url-rewriting,url-routing,friendly-url,C#,Asp.net,Url Rewriting,Url Routing,Friendly Url,我在IIS6上使用ASP.NET 2.0,因此无法使用system.web.routing。我试过几个URL重写器,但都没有达到我的目的 我基本上需要用最少的IIS配置将URL1转换为2(读取/解析然后重定向),因为我没有重新配置web服务器的完全权限(即IIS6上的ISAP或安装第三方扩展/库)。我无法将URL转换为3,因为所有物理链接都将中断 谢谢大家! 我建议您考虑在UrlRewriter.net中使用自定义转换。详细说明如何使用Intelligencia.UrlRewriter程序
谢谢大家! 我建议您考虑在UrlRewriter.net中使用自定义转换。详细说明如何使用
Intelligencia.UrlRewriter
程序集(大约是页面下方的3/4)执行此操作。希望它足够好,可以满足你的需要
protected void Page_Load(object sender, EventArgs e)
{
HtmlLink canonicalTag = new HtmlLink();
canonicalTag.Href = "http://www.url.com/default.aspx";
canonicalTag.Attributes["rel"] = "canonical";
Page.Header.Controls.Add(canonicalTag);
}
创建404错误处理程序,例如404.aspx。在该页面中,解析请求URL并使用
request.Path
提取代码。然后,重定向到default.aspx?code=abc123
您应该能够为您的网站将404(找不到页面)处理程序设置为404.aspx,大多数托管提供商都允许这样做。我认为URL重写不起作用,因为我不想重写URL,我只需要读取/解析URL,然后重定向。我将在应用程序错误(global.asax)中手动执行解析和重定向因为我无法删除aspxerrorpath查询字符串,因为我无法在抛出aspxerrorpath之前捕获/abc123的值,因为Request.Path始终是404错误页面的URL。请确保在IIS中而不是在web.config中设置404处理程序。您建议将Application\u error(global.asax)设置为404吗?因为我对web服务器没有太多的控制权,而且我们有不止一台web服务器,所以我更喜欢“软”方式。对于任何IIS设置更改,都需要数周的时间才能获得批准…如果您收到无扩展名URL的应用程序错误事件,如
http://www.url.com/abc123
请务必使用它。否则,您需要将IIS配置为使用404处理程序。我已将我的开发人员IIS配置为将404转发到我的404页面,但请求。Url和请求。显示404页面和请求。URLreferer路径的路径均为空。