url重写 用微软自带urlrewrite

lianglei9810 2009-09-19 11:40:12
要求如下:
只修改web.config 和 建立类

不修改iis

请大虾们帮我找个例子 。

如果是*.aspx 转换成 *.html 用不用修改iis配置
...全文
341 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
mngzilin 2009-09-23
  • 打赏
  • 举报
回复
希望楼主好好实验一下,我能提供的就这么多。我从来没有配置过iis
mngzilin 2009-09-23
  • 打赏
  • 举报
回复
Response.Redirect(Request.RawUrl.ToLower().Replace(".aspx",".html"));

//用Response.Redirect的,还用你配置iis吗?
lianglei9810 2009-09-23
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 mngzilin 的回复:]
global不用修改iis
[/Quote]
需要修改 不信自己试试
mngzilin 2009-09-19
  • 打赏
  • 举报
回复
public partial class Global : System.Web.HttpApplication
{
void Application_BeginRequest(object sender, EventArgs e)
{

if (Regex.IsMatch(Request.RawUrl.ToLower(), @".aspx") == true)
{
Context.RewritePath(Request.RawUrl.ToLower().Replace(".aspx", ".html"));//Context.RewritePath不改变地址栏的url重写
}
}

//或者使用下面的代码
//void Application_AcquireRequestState(object sender, EventArgs e)
//{
// if (Regex.IsMatch(Request.RawUrl.ToLower(), @".aspx") == true)
// {
// Response.Redirect(Request.RawUrl.ToLower().Replace(".aspx",".html"));//用Response.Redirect可以改变地址栏进行url重定向
// }
// }

}

补充上面
mngzilin 2009-09-19
  • 打赏
  • 举报
回复
global.asax文件:
<%@ Application Language="C#" CodeFile="Global.asax.cs" Inherits="Global" %>

<script runat="server">
</script>


global.asax.cs文件:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
using System.Web.Caching;
void Application_BeginRequest(object sender, EventArgs e)
{

if (Regex.IsMatch(Request.RawUrl.ToLower(), @".aspx") == true)
{
Context.RewritePath(Request.RawUrl.ToLower().Replace(".aspx", ".html"));//Context.RewritePath不改变地址栏的url重写
}
}

//或者使用下面的代码
//void Application_AcquireRequestState(object sender, EventArgs e)
//{
// if (Regex.IsMatch(Request.RawUrl.ToLower(), @".aspx") == true)
// {
// Response.Redirect(Request.RawUrl.ToLower().Replace(".aspx",".html"));//用Response.Redirect可以改变地址栏进行url重定向
// }
// }
CODE163 2009-09-19
  • 打赏
  • 举报
回复
好多例子 耐心看
CODE163 2009-09-19
  • 打赏
  • 举报
回复
写一个类实现IHttpmodule接口
去GOOGLE搜“Httpmodule 实现 URL重写”
lianglei9810 2009-09-19
  • 打赏
  • 举报
回复
...能给个完整的例子吗?web.config 和 cs
tkx180 2009-09-19
  • 打赏
  • 举报
回复
没用过,观望
mngzilin 2009-09-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jcgh1985 的回复:]

我可以很负责的告诉你 微软自带urlrewrite 本来就是这样滴 不修改iis 只修改web.config 和 建立类
[/Quote]

你这是不负责任,好好看看global的作用吧
mngzilin 2009-09-19
  • 打赏
  • 举报
回复
添加global文件,引入命名空间using System.Text.RegularExpressions;

并添加如下代码:
     void Application_AcquireRequestState(object sender, EventArgs e)
{
//禁止匿名用户访问Manager目录
if (Regex.IsMatch(Request.RawUrl.ToLower(), @".aspx") == true)
{
Response.Redirect(Request.RawUrl.ToLower().Replace(".aspx",".html"));//用Response.Redirect可以改变地址栏进行url重定向
//Context.RewritePath(Request.RawUrl.ToLower().Replace(".aspx", ".html"));//Context.RewritePath不改变地址栏的url重写
}
}
白s菜 2009-09-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 lianglei9810 的回复:]
要求如下:
只修改web.config 和 建立类

不修改iis

请大虾们帮我找个例子 。

如果是*.aspx 转换成 *.html 用不用修改iis配置

[/Quote]
我可以很负责的告诉你 微软自带urlrewrite 本来就是这样滴 不修改iis 只修改web.config 和 建立类
mngzilin 2009-09-19
  • 打赏
  • 举报
回复
global不用修改iis
lianglei9810 2009-09-19
  • 打赏
  • 举报
回复
兄弟们 不行啊 都,不管是 该 web.config 还是 global 都要设置iis
不然 你们试试 把你们的项目放在iis里 不配置映射的话 他就不出来。用 html页试
lonelySurvive 2009-09-19
  • 打赏
  • 举报
回复
学习了
mngzilin 2009-09-19
  • 打赏
  • 举报
回复
第一步,首先下载微软提供的URL重写组件(点击下载),然后在项目中引用该组件。
第二步,设置web.config文件:

<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>

把上面这段代码加入<configuration>和</configuration>之间,然后把下面的代码加入<system.web>和</system.web> 之间:

<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>

接下来的任务就是设置具体哪些页面url重写了,具体代码写在<configuration>和</configuration>之间,如:
<RewriterConfig>
<Rules>
<!-- 新闻 -->
<RewriterRule>
<LookFor>~/news_([0-9]*).html</LookFor>
<SendTo><![CDATA[~/news.aspx?newsid=$1]]></SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>

第三步:在页面程序中可以这样写:
<a href="news_<%=newsid%>.html" target="_blank">新闻标题</a>
mngzilin 2009-09-19
  • 打赏
  • 举报
回复
楼主干吗非要用微软自带urlrewrite ,配置global是最简单的方法了。不用修改iis

楼主的方法,需要配置iis。
lianglei9810 2009-09-19
  • 打赏
  • 举报
回复
有没有 用微软自带urlrewrite 的那个 ?我以前做过 就改改web.config 就能实现url重写
周公 2009-09-19
  • 打赏
  • 举报
回复
用自定义IHttpModule实现URL重写
在本篇将讲述利用自定义IHttpModule来实现URL地址重写。
nbaertuo 2009-09-19
  • 打赏
  • 举报
回复
不让我下载,只能灌水赚积分啦!
加载更多回复(2)

62,047

社区成员

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

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

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

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