url重写
2015-06-05 15:18
309 查看
前两天做项目的时候,有地方需要用到静态页面,然后就顺便研究了一下url重写,人理解,url重写就是修改了地址栏的显示,隐藏了真正的跳转。废话不说了,下面是我使用的两种方法
1、在global.asax文件中添加一个void ApplicationBeginRequest(..)方法,在这个方法里面,修改跳转路径。代码如下
void Application_BeginRequest(object sender, EventArgs e)
{
string url = Request.RawUrl;//请求的原始页面
Regex reg = new Regex(@"wangzhangonggao/(\d+).html");
Match match = reg.Match(url);
if (match.Success)
{
string id = Regex.Match(url, @"\d").Value;
string strPath = "/wangzhangonggao/newsDetail.htm";
HttpContext.Current.RewritePath(strPath);//跳转到真实的页面
}
}
在web.config中要记住在<compilation>下添加<buildProviders>节点,说明文件格式的引用
2、利用UrlRewriter
这个应该是常用的了,最重要的就是web.confg的配置。
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/wangzhangonggao/(\d+).html</LookFor>
<SendTo>~/wangzhangonggao/newsDetail.htm</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<appSettings>
<add key="ConnectionString" value="server=localhost;uid=sa;pwd=test;database=SLS_HZC"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0">
<buildProviders>
<add extension=".htm" type="System.Web.Compilation.PageBuildProvider"/>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>
<httpHandlers>
<!--这个地方的配置针对的是请求页面的,例如我请求wangzhangonggao/1.html,但实际上页面的内容是在另一个页面中。弄反了会报404的错误-->
<add verb="*" path="wangzhangonggao/*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
</httpHandlers>
1、在global.asax文件中添加一个void ApplicationBeginRequest(..)方法,在这个方法里面,修改跳转路径。代码如下
void Application_BeginRequest(object sender, EventArgs e)
{
string url = Request.RawUrl;//请求的原始页面
Regex reg = new Regex(@"wangzhangonggao/(\d+).html");
Match match = reg.Match(url);
if (match.Success)
{
string id = Regex.Match(url, @"\d").Value;
string strPath = "/wangzhangonggao/newsDetail.htm";
HttpContext.Current.RewritePath(strPath);//跳转到真实的页面
}
}
在web.config中要记住在<compilation>下添加<buildProviders>节点,说明文件格式的引用
2、利用UrlRewriter
这个应该是常用的了,最重要的就是web.confg的配置。
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/wangzhangonggao/(\d+).html</LookFor>
<SendTo>~/wangzhangonggao/newsDetail.htm</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<appSettings>
<add key="ConnectionString" value="server=localhost;uid=sa;pwd=test;database=SLS_HZC"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0">
<buildProviders>
<add extension=".htm" type="System.Web.Compilation.PageBuildProvider"/>
<add extension=".html" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>
<httpHandlers>
<!--这个地方的配置针对的是请求页面的,例如我请求wangzhangonggao/1.html,但实际上页面的内容是在另一个页面中。弄反了会报404的错误-->
<add verb="*" path="wangzhangonggao/*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
</httpHandlers>
相关文章推荐
- Android—点击自定义dialog窗体的控件销毁自己
- js各种验证文本框输入格式(正则表达式)
- 两个栈实现一个队列的添加、删除功能
- sublinetext3安装插件
- 使用sbt容量平衡树实现shuffle
- jacod实现转换PDF(只支持windowsx64和x84)
- Oracle中临时表空间的清理
- python 自动重启服务
- eclipse 搭建ruby环境
- 8个你应该了解的正则表达式
- wpf 动态生成 灰阶
- Xcode6 provisioning profile 存储路径
- C++容器类和Qt容器类的对比
- IO-02 整数四则运算(10)
- X-Cache and X-Cache-Lookup headers explained
- 把一个整数随机折分?比如把100随机折分20分,20分加起来必须等于100
- python模块pygal,出图工具
- jQuery实现延迟跳转的方法
- 用javascript 当mouseover 悬停在一个td里的内容时显示一段文字
- 【吾日三省吾身】2015.6.04-涅槃行动第十七天