1)在 IIS 上使用 IIS_ReWrite 做静态化处理。如果采用的服务器为 IIS(适合 PHP、ASP、ASP.NET 程序),则可采用这种静态化处理方式,实现过程如下:
① 下载 isapi_rewrite.isapi_rewrite,下载完成后到安装包里的.msi的文件,安装即可。
② 打开 Internet 信息服务,选择网站单击右键,选择 Web 站点属性,单击 ISAPI筛选器选项卡并添加筛选器,这里的名称可以随意填写,路径指定为 ISAPI_Rewrite.dll,然后单击“确定”按钮。
③ 选择开始菜单→程序→Helicon→ISAPI_Rewrite→httpd.ini。
④ 将 RewriteRule /user/(\d+).htm /user.asp\?id=$1 [I,O]加入httpd.int中。
⑤ 选择测试页,并在浏览器地址栏输入:/user/1.htm 页面将指向/user.asp?id=1,即完成了静态化。
(2)使用 404错误操作实现静态化。使用虚拟主机的ASP 网站,需要使用404错误操作实现静态化,步骤如下:
① 编写 404处理页面 error.asp 放在网站的根目录。
② 设置网站自定义错误信息。
③ 在 error.asp里添加处理命令:
Call ParaseUrl("/(\d+).htm","/user.asp?User=$1"
④ 在需要静态化的实例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")
%>
⑤ 完成后进行测试,在地址栏输入/1.htm ,发现实际调用/user.asp?user=1。
(3)使用 URLRewriter.dll实现静态化。使用 asp.net 开发的网页程序,可以使用 URLRewriter.dll实现静态化,具体方法如下:
① 下载URLRewriter.rar,解压到/bin/目录下。
② 将URLRewriter.rar加入工程引用。
③ 配置 IIS 站点,将扩展名为html 指向处理程序aspnet_isapi.dll。
④ 打开 IIS 站点→属性→主目录→配置→添加。
可执行文件和aspx 处理相同,都是指向aspnet_isapi.dll。
注意:不要选中“检查文件是否存在”项。
⑤ 在web.config 中添加配置内容:
<configSections>
<section name="RewriterConfig"
type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"
/>
</configSections>
<!-- 实际重定向 -->
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/(\d*).html</LookFor>
<SendTo>~/user/default.aspx?link=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
<!--需要在 IIS 里面增加 html 引用,改成aspx 的引用-->
<httpHandlers>
<add verb="*" path="*.aspx"
type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html"
type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
⑥ 完成后进行测试,在地址栏输入http://localhost/1.html,结果将指向:http://localhost/user/default.aspx?link=1。
|