UrlRewriter && IIS7
为了在动态网站获得更好的url体验,往往采用url重写技术。
比如:http://blog.xujif.com/?p=268 可以重写为 http://blog.xujif.com/archives/wordpress-rss-feed-error/
更多介绍:传送门:http://msdn.microsoft.com/zh-cn/library/ms972974.aspx
IIS级别可以实现url重写。这里说的是asp.net级别的
在asp.net级别的url重写中,用到一个HttpModule模块
举个例子:新建类库
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
namespace UrlRewrite{ public class UrlRewrite : IHttpModule { public void Dispose() { // throw new NotImplementedException(); } public void Init(HttpApplication context) { context.BeginRequest += new EventHandler(BeginRequest); } public void BeginRequest(object sender, EventArgs e) { HttpApplication app = sender as HttpApplication; HttpUrlRewrite(app.Context); } public void HttpUrlRewrite(HttpContext context) { string url = context.Request.Url.ToString(); context.RewritePath("~/Default.aspx", null, "url=" + url); } }} |
这个例子是把对网站的所有请求都转发给~/Default.aspx,然后把请求的url作为参数传递它。
如果在Default.aspx.cs里
|
1
2
3
4
5
6
7
|
protected void Page_Load(object sender, EventArgs e){Response.Write(Request["url"]);} |
然后在web.config里注册一下啊 (确保UrlRewrite.dll已经编译到bin目录了)
|
1
2
3
4
5
6
7
|
<system.web> <httpModules> <add name="UrlRewrite" type="UrlRewrite.UrlRewrite,UrlRewrite"/> </httpModules> <compilation debug="true"/> <pages/></system.web> |
然后在vs里编译一下,就可以发现访问 http://site.com/xxxxxx.aspx 甚至 http://site.com/yyyy 都能输出了
但是,如果发布到iis7下去,又发现不工作了。
这时只要添加这一段到web.config,就可以了(不需要配置IIS7)(具体含义可以搜索单词)
|
1
2
3
4
5
6
|
<system.webServer> <modules runAllManagedModulesForAllRequests="true"> <add name="UrlRewriter" type="UrlRewrite.UrlRewrite,UrlRewrite"/> </modules> <validation validateIntegratedModeConfiguration="false"/></system.webServer> |
如果是IIS6,则添加一个 “通配符应用程序映射”(或者实现为静态的.html等)
可执行文件从.aspx复制即可
去掉 确认文件是否存在的勾 就可以了
UrlRewriter && IIS7的更多相关文章
- framework4.0 IIS7下urlrewriter设置问题
framework4.0 IIS7下urlrewriter设置问题 http://www.cnblogs.com/litian/articles/alex.html IIS开启伪静态后html静态页面 ...
- IIS7下使用4.0框架集成模式URLRewriter重写中文URL乱码问题
解决方法: 1 url中中文先通过Server.UrlEncode编码 2 修改网站编码 3.更改URLRewriter.net中源码 找到RewriterEngine类中 private strin ...
- iis6|iis7|配置URLRewriter|64位操作系统下|.net2.0|.net4.0|配置URLRewriter|Web.config配置详情
想必很多ASP.NET的码友们在IIS配置伪静态被严重纠结过不止一次两次,本园主经过多次站点伪静态配置,总结了一下,IIS版本:IIS 6.IIS 7,服务器:Windows Server 2003. ...
- .NET4.0下网站应用法度用UrlRewriter.dll重写无后缀路径 (在IIS7.5中的设备办法)
.NET4.0下网站应用法度用UrlRewriter.dll重写无后缀路径 在IIS中新建网站(端标语8111) 直接运行http://localhost:8111/ 设备办法: 二.添加通配符脚本映 ...
- IIS7.0 下使用Intelligencia.UrlRewriter时Session为空问题
背景 新年伊始,本人的开发环境由Windows Server 2003 +IIS 6 升级成了 Windows Server 2008 +IIS 7,之后便着手参加新项目的开发.项目开发后期测试过程中 ...
- IIS7下.NET4.0 网站UrlRewriter.dll重写无后缀路径 失效
解决方法: 1.添加通配符脚本映射,选择:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 2.找到和网站相对的连接池,选择 ...
- IIS7.5+WebConfig实现页面伪静态和301重定向
IIS7.5+WebConfig实现页面伪静态和301重定向 使用URLRewriter组件在windows 2003 +iis 6.0下配置伪静态的文章网络上一大堆.但在iis7.0或iis 7.5 ...
- IIS7.5 伪静态 脚本映射 配置方法
首先,是IIS7.0的配置,由于Windows Server 2008操作系统默认的IIS版本为7.0,我们知道,IIS7.0与IIS6.0 核心注意的地方:先要将应用池设置为集成模式,修改OK后,再 ...
- ASP.NET在IIS7.5(IIS7)配置伪静态
http://jingyan.baidu.com/article/67508eb4ff92c69cca1ce49a.html 我相信不少站长都遇到个头疼的问题..NET如何在IIS7或者IIS7.5下 ...
随机推荐
- oracle数据库连接错误解决办法
ORA-28547 连接服务器失败,可能是Oracle Net 管理错误 原文地址:http://www.linuxidc.com/Linux/2014-11/109686.htm 上周去给客户培训O ...
- RegExp.$1
在学习vue2的compile的模板解析的时候,会出现这个正则表达式,不是很清楚,所有就弄明白下并记录下来. RegExp 是javascript中的一个内置对象.为正则表达式.RegExp.$1是R ...
- rabbitmq学习(三) —— 工作队列
工作队列,又称任务队列,主要思想是避免立即执行资源密集型任务,并且必须等待完成.相反地,我们进行任务调度,我们将一个任务封装成一个消息,并将其发送到队列.工作进行在后台运行不断的从队列中取出任务然后执 ...
- 【Ray Tracing The Next Week 超详解】 光线追踪2-1
Preface 博主刚放假回家就进了医院,今天刚完事儿,来续写第二本书 Ready 我们来总结一下上一本书的笔记中我们的一些规定 1. 数学表达式 我们采用小写粗黑体代表向量,大写粗黑体代表矩阵, ...
- 压缩归档文件审查工具p7zip-full
压缩归档文件审查工具p7zip-full 在数字取证中,会遇到各种形式的压缩文件和归档文件.为了处理这些不同的文件,Kali Linux提供了专用工具p7zip-full.该工具支持各种格式的压缩 ...
- Python进行Android开发步骤
移动应用开发 1. 建立开发环境 下载软件开发包(SDK): http://developer.android.com/sdk/index.html adt-bundle- ...
- 工具使用-----Jmeter的基础用法
//摘抄至http://www.cnblogs.com/TankXiao/p/4045439.html 以下是我自己录制的关于这篇文章的视频,有兴趣的可以下载哦 https://yunpan.cn/c ...
- BZOJ2973 : 石头游戏
考虑到$lcm(1,2,3,4,5,6)=60$,所以操作序列每60秒一个循环. 将操作表示成转移矩阵的形式,预处理出前60秒的转移矩阵以及它们的乘积$B$. 那么t秒的转移矩阵为前$t\bmod 6 ...
- JavaScript学习方法
首先要说明的是,咱现在不是高手,最多还是一个半桶水,算是入了JS的门. 谈不上经验,都是一些教训. 这个时候有人要说,“靠,你丫半桶水,凭啥教我们”.您先别急着骂,先听我说. 你叫一个大学生去教小学数 ...
- Mac下配置Apache服务器
有的时候,我们需要在内网工作组中分享一些文件或是后台接口没有及时给出,你又想要模拟真实数据,直接在项目里创建plist也可以做到这种需求,但难免让工程变得冗余且看起来比较Low.这个时候就看出配置本地 ...