ASP.NET中的URL重写
有人能告诉我哪种是ASP.NET 3.5 web应用程序URL重写的最佳技术吗 谢谢使用哪台web服务器 如果是ApacheHTTP服务器,那么可能是最好的选择 这篇文章可能是最好的总结,涵盖了主要的web服务器和web框架ASP.NET中的URL重写,asp.net,url-rewriting,Asp.net,Url Rewriting,有人能告诉我哪种是ASP.NET 3.5 web应用程序URL重写的最佳技术吗 谢谢使用哪台web服务器 如果是ApacheHTTP服务器,那么可能是最好的选择 这篇文章可能是最好的总结,涵盖了主要的web服务器和web框架 还有一个选项,它是IIS 6和IIS 7的mod_rewrite clone,可与ASP.NET一起使用。最简单的解决方案是通过相同的脚本文件(即index.php)传递所有请求,然后用脚本代码解析URL。如何执行此操作取决于您的平台。如果您将IIS 7用于ASP.NET
还有一个选项,它是IIS 6和IIS 7的mod_rewrite clone,可与ASP.NET一起使用。最简单的解决方案是通过相同的脚本文件(即index.php)传递所有请求,然后用脚本代码解析URL。如何执行此操作取决于您的平台。如果您将IIS 7用于ASP.NET应用程序,您可能需要下载:
如果您使用IIS 6或IIS 5,您可能需要考虑使用以下开源组件:
如果您不知道或没有能力在Web服务器上安装URL重写插件/模块,或者只需要简单的重写 下面是我在IIS6中重新编写URL的精简版本 下面是一个非常基本的URL重写版本,您可以将其放入网站根目录中的Global.asax或Global.asax.cs文件中 这段代码将url/Store/Categories/重定向到/Store/Default.aspx?action=Categories当用户在其url中看到/Store/Categories/时,您的应用程序将url视为/Default.aspx?action=Categories并请求[“action”]。ToString()的值将为“Categories”
我正在用asp.net 3.5开发,这对Apache非常有用,但他似乎在使用IIS;我不知道现在其他人已经澄清,但在“正确”答案被接受之前(现在有人编辑了我的答案),删除我的答案是否是一种不好的形式…这是否意味着重定向请求?如果是,我不认为这是最好的解决方案。不,只需配置服务器,使所有请求都由同一个文件处理。不是通过网络浏览器,只是在服务器端。我在共享主机上,无法直接访问IIS,还有其他建议吗?在这种情况下,您可能需要考虑使用以下开源组件:一旦安装了模块,它就可以通过Web.CONFIG使用。我已经在IIS中使用了共享主机,如果还没有,请他们安装,他们可能会安装。我使用过很多方法,这是ASP.NET WebForms最简单的方法。通过重定向,应用程序会变慢吗?在我看来,这是一个非常简单的解决方案,它有任何缺点吗?我不会说这是一个比较我的方法是否非常有效的方法。我做了一些搜索,找到了一个与我类似的方法。它建议将此样式用于简单规则,并将模块用于更复杂的规则集。
void Application_BeginRequest(object sender, EventArgs e)
{
string fullOriginalpath = Request.Url.ToString().ToLower();
if (fullOriginalpath.Contains("/store/categories/"))
{
Context.RewritePath("/Store/Default.aspx?action=categories");
}
else if (fullOriginalpath.Contains("/store/products/"))
{
Context.RewritePath("/Store/Default.aspx?action=products");
}
}