Asp伪静态的实现及URL重写
精通MYIIS-URLRewrite(假静态)

精通MYIIS-URLRewrite(假静态)假静态)什么叫URLrewrite呢?它的中文名字叫Url重写(假静态)。
也就是URL改写的意思。
URL的重写之所以得到如此大的应用潜力发挥,主要还是归功于搜索引擎对网站页面的搜索规则推动的。
下面是一个简单的URL地址:http://www.135********.cn/myurl.asp?id=7788520源代码的内容如下:输出的结果也是相当的简单:估计对ASP了解的用户都知道这个程序的含义。
一. 简单的改造我们现在打开VIF ,来到URL 重写栏目。
为这个站增加一个有趣的规则:而实际上在服务器上面 Myurl.htm 是根本不存在的一个文件。
访问看看:关于正则表达式的解释,我们不想过多的去讲解,大家可以去网站上学习一下。
通过上面的例子通过上面的例子,,大家可以发挥自己的想象做出更多的设置来大家可以发挥自己的想象做出更多的设置来。
可以看出可以看出,,如果直接访问myurl.htm 实际是访问了一个带参数的ASP 文件文件。
亮点:试想当你把一个FORM 表单提交给一个HTML 文件来处理,这是多么的牛B 啊。
或者哪天你把这一个FORM 提交给一个TXT 文件,CGI 文件处理的话,不是档次更高了? 二.加入点正则的味道进来上面我们只是玩了一个小把戏,现在我们加入一点正则的东西进来。
看看是不是会为我们增色不少。
现在我们这样修改刚刚的规则:这样的规则是什么呢?按正则的解释就是,凡是类似myurl_123.htm,myurl_333.htm, myurl_39781.htm, myurl_1233.htm……..括号里是数字的文件,都将自动应用到/myurl.asp后面的ID的参数部分,以替换$1这个标记。
规则生效后,我们访问看看:再来看一张:聪明的朋友可能早就看出了这其中的端倪了。
如果你是一个强者,你可以容入更多功能更强大正则表达式。
在软件的正则部分,我们用VC代码开发制作,速度保证第一。
url重写(伪静态)IIS配置图解-^特殊П佀命^-博客园

url重写(伪静态)IIS配置图解-^特殊П佀命^-博客园
url重写(伪静态)IIS配置图解
伪静态是指动态网页通过重写URL的方法实现去掉动态网页的参数
伪静态的作用:
一)、利于搜索引擎的抓取
二)、不变应完变
三)、防止某些黑客恶意攻击
四)、方便访问者使用
通过IIS创建虚拟目录,新建网站放在该目录下面;
IIS配置:
在选中的网站,点击右键->属性选择配置:
把上面两个文本框的值复制走保存在记事本里面点击确定
注意下面几个勾了的地方
把刚才复制的值粘贴在上面,注意添加扩展名.html,去掉检查文件是否存在复选:
点击确定 IIS就配置Ok啦。
网站伪静态方法

从网上找到的几种静态化方法,时间长了,也忘了出处,不过大家还是可以学习一下。
几种静态化方法:1.使用IIS_ReWrite静态化处理,适合PHP、ASP、程序。
A.isapi_rewrite.isapi_rewrite分精简(lite)和完全(full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理,精简版下载地址ISAPI_Rewrite2.7For IIS。
B.打开IIS,选择网站,右键菜单属性,添加过滤器。
如图:C.打开文件:开始菜单->程序->Helicon->ISAPI_Rewrite->httpd.iniD.将RewriteRule/user/(\d+).htm/user.asp\?id=$1[I,O]加入内容中。
E.在浏览器地址栏输入:/user/1.htm页面将指向/user.asp?id=1。
2.使用虚拟主机的ASP网站,需要使用404错误操作实现静态化。
A.下载404处理页面。
404_Rewrite_GB2312.rarB.解压后将Rewrite.asp、error.asp放在网站的根目录。
C.设置网站自定义错误信息如图:D.在error.asp里添加处理命令:Call ParaseUrl("/(\d+).htm","/user.asp?User=$1")E.在需要静态化的实例user.asp页面中添加代码:<!--#include virtual="/rewrite.asp"-->引用文件<%response.write"<li>Para="&session("Para")‘变量是通过Session传递‘原来使用request(“user”)获得参数的命令,需要修改成request_(“user”)调用response.write"<li>request_(""User"")="&request_("User")‘原用request.querystring(“user”)获得参数命令,修改为request__.querystring(“user”)调用response.write"<li>request__.querystring(""User"")="&request__.querystring("User")%>F.在地址栏输入/1.htm,实际调用/user.asp?user=13.使用开发的网页程序,使用URLRewriter.dll实现静态化。
IIS7.0设置 url重写成html(伪静态)

IIS7.0设置url重写成html(伪静态)前提条件:先把IIS应用程序池的托管管理道模式为集成(为了可以做第3,4步)首先在IIS中的站点里,找到处理程序映射。
双击进去1、添加脚本映射(路径:*.html 可执行文件%windir%Frameworkv2.0.50727aspnet_isapi.dll 名称:任意,比如Html )2、添加通配符脚本映射(路径:* 可执行文件:C:\Windows\\Frameworkv2.0.\50727\aspnet_isapi.dll 名称:任意,比如All)3、托管处理程序映射(路径:*.html 可执行文件:System.Web.UI.PageHandlerFactory 名称任意比如Html-Integrate)4、IIS中找到模块(双击进去)-->添加托管模块---->(名称:任意如All 类型:URLRewriter.ModuleRewrite把仅针对向 应用程序或托管处理程序发出请求调用勾上5、将应用程序池的托管管理道模式为经典以上步骤是针对32位电脑系统所写,如果您的电脑是64位系统,需要再设置如下一个步骤选择重写站点对应的应用程序连接池,高级设置,启用32位应用程序,设为true上面设置完,重写成HTML肯定成功,但是II7或以上有个bug,也就是真实存在的html 没有办法访问,下面我给大家提供一个可以解决的办法,也就是在webconfig里加下配置就能解决:<system.web><httpHandlers><add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory"/></httpHandlers><compilation debug="true" targetFramework="4.0"><buildProviders><add extension=".html" type="pilation.PageBuildProvider"/></buildProviders></compilation><globalization requestEncoding="utf-8" responseEncoding="utf-8" /><httpRuntime requestValidationMode="2.0" /><pages validateRequest="false" /></system.web>上面加红色的就是了。
PHP简单的伪静态URL机制实现

PHP简单的伪静态URL机制实现PHP简单的伪静态URL机制实现PHP虽然是一门新语言,但是如果编程语言写的好容易上手。
以下是店铺精心为大家整理的PHP教程,希望对大家有所帮助!更多内容请关注应届毕业生网!曾几何时,我们公司准备开发一套新的建站系统,决定将以前的框架给KO掉,重新开发一套新的框架来适应新的系统功能。
领导们不希望使用外面已有的框架,号称要开发有自己特色的框架(不懂开发的领导害死人)。
于是我们又投入到了新的开发当中。
由于我们的系统支持伪静态,以前的系统是直接使用服务器apache或IIS自带的rewrite文件定义规则,而框架中没有任何路由机制,于是这次框架准备使用新的策略,由PHP实现路由机制。
于是我开始了功能实现的探索之路。
开发之前,我先了解‘路由机制’要做什么,它主要做两件事。
1.路由机制就是把某一个特定形式的URL结构中提炼出来系统对应的参数。
举个例子,如:/article/1 其中:/article/1 -> ?_m=article&id=1。
2.其次,是将拥有对应参数的URL转换成特定形式的URL结构,是上面的过程的逆向过程。
由于路由机制隔离了URL结构和参数的转换关系,使的日后结构的变化不会影响下面代码的执行。
通过上面的了解,可以得出要编写一个路由机制要一下几步:1.编写服务器apache或IIS自带的rewrite文件,将URL结构导入index.php。
2.一个路由规则配置文件。
3.一个路由解析器,用来解析规则,匹配和转换URL。
于是,我们一一实现其中的每一个部分。
1.rewrite文件编写,以Apache为例:1 2 3 <IfModule mod_rewrite.c> RewriteEngine OnRewriteRule ^index\.php$ - [L]4 5 6 7 RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule (.+) index.php/$1[L]</IfModule>上面的代码就是将URL结构导入index.php中,具体的`rewrite细节就不赘述了。
如何通过RewritePath方法重写Url地址实现伪静态

如何通过RewritePath方法重写Url地址实现伪静态各位在浏览本站时如果细心一些,就会发现本站的Url地址全都是目录式的,也就是像我的电脑中文件夹式的目录结构,地址中不包含文件名。
以前在网上也看到有人问到这种目录式Url的实现方法,本站是通过重写Url地址来实现的,本章就说说小站的实现方法,当然,实现该功能的方法多种多样,不仅仅限于小站以下要说的方法。
1,首先新建一个类库项目,将自动生成的Class1文件删掉,自己创建一个HttpModule.cs类。
2,修改代码,使HttpModule.cs类继承自IHttpModule接口,继承该接口必须实现void Dispose();void Init(HttpApplication context);两个方法,Dispose方法我们可不用管它,我们仅需要在Init方法中实现HttpApplication 的BeginRequest事件即可,代码如下:public void Init(HttpApplication context){context.BeginRequest += new EventHandler(context_BeginRequest);}context_BeginRequest事件如下:void context_BeginRequest(object sender, EventArgs e){HttpApplication application = (HttpApplication)sender;HttpContext context = application.Context;string path = context.Request.Path;//以上这句代码是实现客户端请求的虚拟路径,如本站中的某链接的地址为/ab/CatalogID1,那么当浏览器者点击该链接的时候,context.Request.Path的值就是/ab/CatalogID1了。
伪静态 规则

伪静态规则
伪静态规则是指在服务器端通过URL重写或其他方法来模拟
静态页面的效果。
在传统的动态网站中,每次请求一个页面时,服务器都会执行一系列的动态处理过程,生成最终的HTML
代码返回给浏览器。
而伪静态规则可以让服务器将动态生成的页面保存为静态文件,并通过URL重写等方式将请求指向对
应的静态文件,从而避免了每次请求都执行一次动态处理过程。
伪静态规则的使用可以有效提高网站的访问速度和性能,减轻服务器的负载。
因为静态文件可以直接由服务器返回,不需要经过动态处理过程,所以响应速度更快。
同时,静态文件也可以被浏览器缓存,进一步加快页面加载速度。
常见的伪静态规则包括将动态页面的URL转换为带有.html扩
展名的静态URL,或者将动态URL中的参数部分隐藏或简化,使用更友好的URL形式。
伪静态规则的实现可以通过服务器
配置文件、插件、框架等方式来完成,具体的规则和实现方式会根据服务器和应用程序的不同而有所差异。
三种实现PHP伪静态页面的方法

三种实现PHP伪静态页⾯的⽅法PHP伪静态写法--其⼀伪静态⼜名:URL重写主要是为了SEO⽽⽣的。
(SEO是什么?这个不⽤问我吧。
呵呵~搞⽹络的不懂SEO那就~~~~)⽅法⼀:⽐如这个⽹页/soft.php/1,100,8630.html其实处理的脚本是soft.php 参数为1,100,8630相当于soft.php?a=1&b=1=100&c=8630 只不过这样的URL太难记。
搜索引擎也不喜欢。
真静态只是完全⽣成了HTML。
客户端访问的时候直接输出。
不⽤脚本解释。
在流量⾮常⼤的时候(⽐如每天有上百万的访问量的时候)会起到很好的效果。
也就是说服务器端实实在在的存在这个HTML页⾯。
当然在你⽹站的流量没有那么⼤的时候。
URL重写是最好的⽅法(个⼈观点,⼤流量的时候可以考虑负载均衡了。
同样没有关系)附URL重写的⽅法有很多种,APACHE,IISREWRITE。
甚⾄PHP脚本都可以直接处理。
⽐如上例中就是PHP脚本直接处理(该⽅法好处是⼤流量的时候直接减轻WEB伺服器的压⼒。
PS:同样也是个⼈观点:================================================下⾯以程序为例讲⼀下PHP伪静态的程序实现⽅法,其实这⽅法我之前已经有在其它论坛社区发过程序为例:/soft.php/1,100,8630.htmlCODE://利⽤server变量取得PATH_INFO信息该例中为 /1,100,8630.html 也就是执⾏脚本名后⾯的部分if(@$path_info =$_SERVER["PATH_INFO"]){//正则匹配⼀下参数if(preg_match("/\/(\d+),(\d+),(\d+)\.html/si",$path_info,$arr_path)){$gid =intval($arr_path[1]); //取得值 1$sid =intval($arr_path[2]); //取得值100$softid =intval($arr_path[3]); //取得值8630}else die("Path:Error!");//相当于soft.php?gid=1&sid=100&softid=8630//就是这么简单了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Asp伪静态的实现及URL重写
用ISAPI_Rewrite实现asp的静态化
ASP网站程序在国内运用很广,但是类似于im286.asp?id=20050307213811这样的URL有点不利于搜索引擎的收录,也就是说不符合友好URL(URLs-Friendly)的标准,那么我们用ISAPI_Rewrite打造一个Clean URL,
1.下载ISAPI_Rewrite.ISAPI_Rewrite分精简(Lite)和完全(Full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理.不过对于有服务器的朋友,精简版也就够啦.精简版下载地址:/download/,就是那Lite Version (free)啦.
2.安装.msi的文件,和装一般程序一样装就可以了,俺就装在D:\ISAPI_Rewrite.
3.接下来一步比较重要哦,看仔细喽.打开Internet 信息服务,右键,web站点属性,电ISAPI筛选器选项卡.添加筛选器,名称自己填,路径自己指定ISAPI_Rewrite.dll,然后确定.
4.来测试一下.新建一个1ting.asp,里面写上
<%=request.querystring("inso")%>
,效果就是执行的时候1ting.asp?inso=*浏览器显示*.
5.这一步很重要哦,开始添加rewrite规则.正则,好头痛,幸亏这个例子比较简单.
找到ISAPI_Rewrite目录,把httpd.ini的只读属性去掉,打开编辑.我们要把1ting.asp?inso=im286映射成为
1ting-im286.html这样的类型,需要在httpd.ini里加上这么一行:
RewriteRule /1ting-([0-9,a-z]*).html /1ting.asp\?inso=$1
,保存.
6.来来来,到浏览器里查看一下效果吧.输入http://12
7.0.0.1/1ting.asp?inso=im286和
http://127.0.0.1/1ting-im286.html,显示的内容是不是都是im286?这就证明成功啦!
嘿嘿,1ting-im286.html这样的页面要比1ting.asp?inso=im286容易收入,所以现在还在用动态方式的朋友可以尝试一下这样的静态映射效果. IIS Rewrite也可以实现这样的功能。
------------------------------------------------------
ASP之URL重写
下载ISAPI_Rewrite解压到任意文件夹安装,给IIS用户读取权限,在IIS右键点击一个站点,属性,ISAPI筛选器,添加,筛选器名称一定得叫 re,可执行文件就点浏览找到你解压的目录Rewrite.dll加上即可。
重启IIS后应该就能支持URL重写规则了。
需要修改解压目录中的httpd.ini这个文件
RewriteRule /info_(\d+)\.htm /info\.asp\?id=$1 [N,I]
这句话就可以把提交的地址/info_122.htm映射到真正的地址 /info.asp?id=122
如果你在处理数据翻页,那么写法是:
More_<%=Page%>_<%=type%>.html (注:page是翻页页数,type是数据类型)
表现形式:More_1_95.html
如果翻下一页,则为:More_2_95.html,继续下一页的循环,则是:
More_3_95.html,以此类推。
不过你需要在httpd.ini文件中增加以下代码:
RewriteRule /More_(\d+)_(\d+)\.html /jsp/more\.jsp\?page=$1&type=$2 [N,I]
如果你的动态程序有多个参数需要传递,那么就增加多个(\d+)即可,如下:
RewriteRule /More_(\d+)_(\d+)_(\d+)\.html /jsp/more\.jsp\?page=$1&type=$2&type2=$3 [N,I]
翻页处理表现形式是:More_1_95.html
如果想把/info.asp?id=50#abc 转换成静态的网页
因为#abc是程序处理了ID=50这个变量生成静态页面之后按锚点又做了一次页内链接,所以应该这么做映射
/info.asp?id=50#abc转换成/info_50.htm#abc,重写规则如下:
RewriteRule /info_(\d+)\.htm#(\d+) /info\.asp\?id=$1#$2 [N,I]
注意:以前在Window 2000 IIS5.0一直使用ISAPI_Rewrite进行动态链接重写HTML静态网址,
最近升级到 Widnows 2003 IIS6.0 后,发现ISAPI_Rewrite根本运行不起来,在IIS 6.0里面一直提示“未加载”,后来查了又查,原来是文件的权限问题。
IIS 6.0 ISAPI_Rewrite 是在Service帐号下运行的,将数据文件的读写权限给予Service 帐号后,ISAPI_Rewrite 终于可以正常运行了。