现在UrlRewriter技术有两个技术平台的,一个就是在Java方向的,另一个就是.NET方向的。今天我们讲的是Java方向的应用。 2.运行效果1: 输入:http://localhost:8080/UrlReWriter/name/hongten ? 3.运行效果2: 输入:http://localhost:8080/UrlReWriter/test.html ? urlRewriter = (UrlRewriter) urlrewriters.get(i); 46 urlRewriter.destroy(); 47 } 项目源码下载:http://files.cnblogs.com/hongten/UrlReWriter.rar
上面的实例中只有用test.com和fengzili.com来访问这个网站的时候,资源才会正常显示。
username=wilson 重写后:http://localhost:13275/wilson 第一步:下载相关DLL(ActionlessForm.dll和UrlRewriter.dll controlType="System.Web.UI.HtmlControls.HtmlForm" adapterType="URLRewriter.Form.FormRewriterControlAdapter , URLRewriter"/> </configSections> <CustomConfiguration> 2.在System.web节点下添加 <httpModules> <add type="<em>URLRewriter</em>.RewriterModule , <em>URLRewriter</em>" name="RewriterModule"/> </httpModules> 解释一下httpModules的的Add节点属性: type:
(URLRewriter) 代码 <configuration> <! , URLRewriter"/> </configSections> …… <! <RewriterRule> <LookFor>~/QuickPager/URL/list(\d+)\.aspx</LookFor> <SendTo>~/QuickPager/URL/URLRewriter.aspx --URL重写的设置--> <httpHandlers> <add verb="*" path="*.aspx" type="<em>URLRewriter</em>.RewriterFactoryHandler , <em>URLRewriter</em>"/> </httpHandlers> 先放出来分页控件的两个项目的源码,其他几个dll的源码如果想看的话,可以先下载自然框架源码。
1) 微软提供的 URL-Rewrite http://msdn2.microsoft.com/zh-cn/library/ms972974.aspx 2) Open Source的 UrlRewriter.NET http://urlrewriter.net/ 3) UrlRewriting http://www.urlrewriting.net/en/Download.aspx 这种组件内部核心的工作原理 (其实也可继承System.Web.HttpApplication,在Application_BeginRequest中插入一个自己的方法处理重写) 其中核心的处理代码,下面的代码摘引自UrlRewriter.NET , Intelligencia.UrlRewriter" /> </configSections> <system.web> <httpModules> <add name="<em>UrlRewriter</em> " type="Intelligencia.<em>UrlRewriter</em>.RewriterHttpModule, Intelligencia.<em>UrlRewriter</em>" /> </httpModules>
UrlRewritingNet.UrlRewriter源码地址 https://github.com/aspnetde/UrlRewritingNet 部署步骤: 步骤一: <! urlrewritingnet" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.<em>UrlRewriter</em> httpModules> <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.<em>UrlRewriter</em>
检测前缀,并转发 /// /// <param name="context"></param> /// <param name="<em>urlRewriter</em> /// <returns></returns> public async Task Invoke(HttpContext context, IUrlRewriter <em>urlRewriter</em> , ProxyHttpClient proxyHttpClient) { var targetUri = await <em>urlRewriter</em>.RewriteUri
接上一篇 .NET4.0下网站应用程序用UrlRewriter.dll重写无后缀路径 在IIS中新建网站(端口号8111) 直接运行http://localhost:8111/ 错误截图
接上一篇 .NET4.0下网站应用程序用UrlRewriter.dll重写无后缀路径 在IIS中新建网站(端口号8111) 直接运行http://localhost:8111/ 错误截图
检测前缀,并转发 /// /// <param name="context"></param> /// <param name="<em>urlRewriter</em> /// <returns></returns> public async Task Invoke(HttpContext context, IUrlRewriter <em>urlRewriter</em> ) { var targetUri = await <em>urlRewriter</em>.RewriteUri(context);
--URL重写的设置,居然必须是第一个--> <configSections> </configSections> <appSettings> <add key="DataBaseType" value="1"/> <LookFor>~/QuickPager/URL/list(\d+)\.aspx</LookFor> <SendTo>~/Nonline/QuickPager/URL/URLRewriter.aspx --URL重写的设置--> <httpHandlers> <add verb="*" path="*.aspx" type="<em>URLRewriter</em>.RewriterFactoryHandler , <em>URLRewriter</em>" /> </httpHandlers> <pages> <!
MVC的路径选择十分灵活,可以用类似/parm1/parm2/parm3/ 的方式(这个有点象iis的urlrewriter),也可以象传统url那样用/?
3.2.0"; public static final String DEFAULT_WEB_CONF_PATH = "/WEB-INF/urlrewrite.xml"; private UrlRewriter urlRewriter; private boolean confReloadCheckEnabled; private int confReloadCheckInterval;
name="ReferrerModule"/> <remove name="ScriptModule"/> <add name="UrlRewrite" type="Intelligencia.<em>UrlRewriter</em>.RewriterHttpModule , Intelligencia.<em>UrlRewriter</em>" /> <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule
System.Web.UI.PageHandlerFactory,名称随意; 7)打开站点切换到功能试图,找到 “服务器组件”->”模块”,双击之后,在打开窗口右侧的操作栏目中,点击”添加托管模块”,类型 URLRewriter.ModuleRewriter
(很象urlRewriter功能) <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/> 表示地址 "
URL重写 我用的是微软的URLRewriter,使用方法参见:http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting
--section:定义配置节处理程序与配置元素之间的关联--> </configSections> <! --自定义的URL重写,type基本上就是dll名--> <add name="<em>UrlRewriter</em>" type="Intelligencia.<em>UrlRewriter</em>.RewriterHttpModule , Intelligencia.<em>UrlRewriter</em>" /> <add name="Profile" type="System.Web.Profile.ProfileModule" /
HTTP .AddIISUrlRewrite(env.ContentRootFileProvider, "UrlRewrite.xml") // 使用IIS UrlRewriter
HttpModule很常用的一个作用就是Url重写,URLRewriter就是基于HttpModule实现的。 另外,有通过HttpHandler对图片加水印,防止盗链的。