iis中url的rewrite问题

bobo0124 2007-01-19 03:02:02
apache可以实现,地址栏保持原始url的状态下,返回url rewrite后的页面。
IIS有组件可以实现一样的功能吗?
另外,IIS可以实现反向链接功能吗? 3x~
...全文
411 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
我看你有戏 2007-01-21
  • 打赏
  • 举报
回复


上面的是ASP.NET级别的


下面这个是服务器级别的 ISAPI_Rewrite组件

http://www.dj9158.com/ReadCode/383.html
我看你有戏 2007-01-21
  • 打赏
  • 举报
回复

实例
http://www.dj9158.com/ReadCode/388.html
bobo0124 2007-01-20
  • 打赏
  • 举报
回复
我试紫云轩的rewriter, 可以转向, 但地质栏里的url一起变了。
Lersh 2007-01-19
  • 打赏
  • 举报
回复
只要IIS服务器的话,就去找IISRewrite筛选器。
关键字IIS ReWrite ISAPI Rewrite,不过一般都是收费的
zty0527 2007-01-19
  • 打赏
  • 举报
回复
ISAPI_Rewrite组件可以实现
bobo0124 2007-01-19
  • 打赏
  • 举报
回复
谢谢上面的xd
有没有不需要写代码的, 只通过iis服务器就可以实现的?
Lersh 2007-01-19
  • 打赏
  • 举报
回复
用URL Rewrite技术
首先在web.config里,system.web段落间添加
<httpHandlers>
<add verb="*" path="*.kfc" type="HtmlHttpHandler,get" />
</httpHandlers>
kfc就是你要接管的文件扩展名
然后在IIS里,映射.kfc文件到asp_net.dll,具体配置和已有的aspx文件的配置一样
最后在你的cs文件里添加代码:
public struct RegexInfo
{
public string _lookfor;
public string _sendto;
public RegexInfo(string before, string after)
{
_lookfor = before.Trim();
_sendto = after.Trim();
}
}

public class HtmlHttpHandler : IHttpHandler //实现IHttpHandler接口
{

private ArrayList _regex_list =new ArrayList();

public HtmlHttpHandler()
{
DataSet ds = new DataSet();
//读取url重写规则文件,并写入RegexInfo结构的实例中
ds.ReadXml(System.Web.HttpContext.Current.Server.MapPath("~/tools/Regexs.xml"));//这里是规则文件的路径
foreach (DataRow r in ds.Tables["regex"].Rows)
_regex_list.Add(new RegexInfo(((string)r["LookFor"]).Trim(), ((string)r["SendTo"]).Trim()));
ds.Reset();
ds.Dispose();
}

public void ProcessRequest(HttpContext context)
{
string myURL = context.Request.Path.Trim(); //获取当前访问的重写过的虚假URL
foreach (RegexInfo r in _regex_list)
{
myURL = Regex.Replace(myURL, r._lookfor, r._sendto,RegexOptions.IgnoreCase); //匹配出其真实的URL
}
context.Server.Transfer(myURL);//执行重新匹配后的地址的程序
}

// Override the IsReusable property.
public bool IsReusable
{
get { return true; }
}
}
/////////////////////////////////////////////////////////////////////
最后在tools目录下建立一个规则文件Regexs.xml
<?xml version="1.0" encoding="utf-8" ?>
<root>
<regex>
<!--重写以后的虚拟地址-->
<LookFor><![CDATA[/tools/get163,(?<id>(.)+.(jpg|gif|bmp)).kfc$]]></LookFor>
<!--实际地址-->
<SendTo><![CDATA[/tools/get163.aspx?url=http://${id}]]></SendTo>
</regex>
</root>
lxmfll2000 2007-01-19
  • 打赏
  • 举报
回复
用Response.Redirect(aaa.aspx);

62,046

社区成员

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

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

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

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