利用Intelligencia.UrlRewriter.dll实现URL重写(伪静态)
来源:互联网 发布:netbeans安装php插件 编辑:程序博客网 时间:2024/04/28 16:35
1.下载Intelligencia.UrlRewriter.dll文件。下载地址:http://urlrewriter.net/
2.在项目中添加引用。
3.设置Web.Config配置文件
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
</configSections>
<appSettings/>
<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
<httpModules>
<add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter" />
</httpModules>
</system.web>
<rewriter>
<rewrite url="~/Default__(.+).html" to="~/Default.aspx?Name=$1" processing="stop"/><!--这里的规则很重要,前面的url值的必须和你的链接地址格式一致-->
</rewriter>
</configuration>
4.新建两个页面(Default.aspx,UrlRewtite.aspx)
Default.aspx.cs代码
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["Name"] != null)
{
Response.Write("注意看URl,我就是Url中下划线的值:<font color='red'>"+Request.QueryString["Name"].ToString()+"</font>")
}
else
{
Response.Write("参数丢失!");
}
}
}
UrlRewtite.aspx 界面
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UrlRewtite.aspx.cs" Inherits="UrlRewtite" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<a href="Default__丿夜丶花生灬.html">test</a>
</div>
</form>
</body>
</html>
5.用户看到的是浏览Default__丿夜丶花生灬.html,实际上是由Default.aspx界面处理的。
注意:
当使用通配符映射或者使用ASP.NET处理所有HTTP请求的时候,IIS的默认文档机制也就失去了该有的作用,以下代码就是用来重新实现默认文档的方法:
<rewrite url="^(.*)/(/?.+)?$" to="$1/default.aspx$2" />
注意:使用“processing="restart"”的时候将会导致重写引擎从头开始执行所有的重写规则,此时应当注重包含“/default.aspx”字符串的处理。
如果你需要同时支持多个默认文档,那么以上代码需要修改为:
<if url="^(.*)/(/?.+)?$">
<rewrite exists="$1/default.aspx" to="$1/default.aspx$2" />
<rewrite exists="$1/index.aspx" to="$1/index.aspx$2" />
<rewrite exists="$1/index.html" to="$1/index.html$2" />
</if>
编辑以上规则代码的时候,尤其要注意确认文件是否存在。
此外,在使用通配符映射或者使用ASP.NET处理所有HTTP请求的时候,你会发现.gif、.css等文件无法正常访问,这是因为此时对这些文件类型的处理都被ASP.NET所拦截。修正方法如下:
<rewrite
url="^(/.+(/.gif|/.png|/.jpg|/.ico|/.css|/.js)(/?.+)?)$"
to="$1" processing="stop" />
两个比较特殊的正则表达式字符是“^”和“$”(不是必须的),“^”代表URL的开头,“$”代表URL的结尾。使用这两个符号可以使您更加精确的控制重写动作,以确保程序所匹配的URL正是您想处理的。
“~/”表示当前网站应用程序运行所在的虚拟根目录,当您把网站应用程序安装于虚拟目录(或者非根目录)的时候,这尤其有用,而无须重新编写任何代码来替换您的虚拟根路径。
模式匹配在处理查询字串(QueryStrings)的时候尤其有用,这可以让您的URL去掉类似于“?id=3”的代码段,这非常有用,可以让你轻松的实现伪静态。
下面列出两个我们认为非常有特色的重写规则:
(1) 当目标URL不包含自定义查询字串的时候:
<rewrite url="^~/mypage(/?.+)?$" to="~/default.aspx$1" />
此时“$1”匹配的是(/?.+)?,也就是所有的查询字串。
(2) 当目标URL包含自定义查询字串的时候:
<rewrite url="^~/mypage(/?(.+))?$"
to="~/default.aspx?page=mypage&$2" />
注意此时需要使用“&”来代替“&”,这是XML文档语法的需要。
- 利用Intelligencia.UrlRewriter.dll实现URL重写(伪静态)
- 利用Intelligencia.UrlRewriter.dll实现URL重写
- 利用Intelligencia.UrlRewriter.dll实现URL重写
- 利用Intelligencia.UrlRewriter.dll实现URL重写1
- 利用Intelligencia.UrlRewriter.dll实现URL重写2
- 利用Intelligencia.UrlRewriter.dll实现URL重写2
- Intelligencia.UrlRewriter.dll实现URL重写
- Intelligencia.UrlRewriter实现伪静态
- 通过UrlRewriter.dll实现伪静态(url重写)|入门级
- 通过UrlRewriter.dll实现伪静态(url重写)|
- 利用URLRewriter重写url地址-实现伪静态
- 使用Intelligencia.UrlRewriter重写URL
- Intelligencia.UrlRewriter.dll重写URL的规则例子
- .net下 URLRewriter.dll 实现URL重写,实现静态页面
- URLRewriter.dll实现伪静态
- 利用UrlRewriter实现重写url
- 利用Mircosoft的URLRewriter.dll实现页面伪静态
- 利用Mircosoft URLRewriter.dll实现页面伪静态
- 在C#中利用Keep-Alive处理Socket网络异常断开的方法
- 必须掌握的八个【cmd 命令行】
- 基于Eclipse的版本控制平台搭建
- Visual Foxpro报表打印程序代码
- 关闭vs2005 Update Intellisense
- 利用Intelligencia.UrlRewriter.dll实现URL重写(伪静态)
- 由浅到深了解JavaScript类
- 如何产生随机数
- xampp教程(转)
- 迭代软件开发
- javascript 中实现继承及多态的例子
- Sql添加删除字段,判断字段是否存在
- 问题: D3D 渲染的一点思考
- VC编程通过访问注册表得到串口数量