asp.net url重写问题

万载馨辰 2012-05-02 09:41:48
我采取的是HttpModule的方式进行重写
在本机(iis7.5)上,这种方式可以拦截后缀为html的网址,也可以拦截无后缀的网址
在办公室(iis5.1)的机器上,这种方式可以拦截后缀html的网址,但不可以拦截无后缀的网址
在服务器上(iis6.0)上,这种方式不可以拦截后缀为html的网址,只能拦截无后缀的网址
下面是代码

public class HttpModule : IHttpModule
{
private HttpContext context;
private string Root;
private string Url;
public void Dispose()
{
}

public void Init(HttpApplication context)
{
this.context = context.Context;
Root = this.context.Request.ApplicationPath;
context.BeginRequest += new EventHandler(Application_BeginRequest);
}

private void Application_BeginRequest(object sender, EventArgs e)
{
context = sender.To<HttpApplication>().Context;
Url = context.Request.Url.LocalPath.ToLower();
if (string.IsNullOrEmpty(Url.RegExReplace(Root+"/index", "")))
{
context.RewritePath(Root+"/Index.aspx");
}
}
}


<httpModules>
<add type="xinchen.Web.HttpModule" name="UrlRewriter" />
</httpModules>

我想知道的是怎样才能在服务器上也就是iis6.0上拦截html后缀的网址,前提是我不能改变服务器上的任何东西,因为这是虚拟主机
...全文
76 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
RUNBEAR 2012-05-02
  • 打赏
  • 举报
回复
以前用httphandler弄过。 都能拦截到。 不过httpmodule也是可以的。

要弄一下IIS。 有IIS版本,HTML这些申请时不会交给.net处理的。要自己设置。 忘记了。。
arecaiz 2012-05-02
  • 打赏
  • 举报
回复
不修改服務器設置不可能實現了!
k8236721 2012-05-02
  • 打赏
  • 举报
回复
人来了!
万载馨辰 2012-05-02
  • 打赏
  • 举报
回复
来个人给分

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧