DBMNG数据库管理与应用

所有存在都是独创。
当前位置:首页 > 服务器配置 > IIS&ASP

Windows Server2008 IIS7.5配置伪静态的方法

1.

以前在windows2003里,使用的是iis6.0,那时常使用的URL重写组件是iisrewrite,当服务器升级到windows2008R2时,IIS成了64位的7.5,结果iisreite组件是32位的,虽然可以设置IIS支持32位程序,不过还是希望找个更好的方法,于是找到了:用于 IIS 7 (x64) 的 Microsoft URL 重写模块 2.0 ,

下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=7435

下载后,双击安装,安装完成后,可以在IIS网站管理中,找到新增加的Url重写这个按钮,见下图:

然后,可以双击“URL重写”按钮,通过“导入规则”htacess文件,可以批量添加规则。这么操作虽然直观,其实最终IIS会在你的网站根目录下生成一个web.config文件。一般内容如下(也可以直接更改web.config文件):


  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <configuration>  

  3.   <system.webServer>  

  4.       <rewrite>  

  5.           <rules>  

  6.               <rule name="商品页规则1">  

  7.                   <match url="^product/([0-9]+)\.html$" ignoreCase="false" />  

  8.                   <action type="Rewrite" url="/UrlTest.aspx?id={R:1}" appendQueryString="false" />  

  9.               </rule>  

  10.               <rule name="商品页规则2">  

  11.                   <match url="^product/([0-9]+)$" ignoreCase="false" />  

  12.                   <action type="Rewrite" url="/UrlTest.aspx?id={R:1}" appendQueryString="false" />  

  13.               </rule>  

  14.             <rule name="商品分类页规则1">  

  15.               <match url="^productlist/([0-9]+)$" ignoreCase="false" />  

  16.               <action type="Rewrite" url="/UrlTest.aspx?id={R:1}" appendQueryString="false" />  

  17.             </rule>  

  18.             <rule name="商品分类页规则2">  

  19.               <match url="^productlist/([0-9]+)/([0-9]+)$" ignoreCase="false" />  

  20.               <action type="Rewrite" url="/UrlTest.aspx?id={R:1}&pid={R:2}" appendQueryString="false" />  

  21.             </rule>  

  22.           </rules>  

  23.       </rewrite>       

  24.   </system.webServer>  

  25. </configuration>  

URL重写后效果如下图

2.

第一部: 
从如下地址中下载URLRewriter组件组件:
官方下载地址:http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
第二部:在网站项目中添加URLRewriter程序集的引用。
第三部:配置webconfig文件:

注意事项:1、参数用()括起来,使用 $1 来获得参数。2、多个参数的时候使用&amp;分割。

    1。在<configuration>与</configuration>节点中间加入如下配置:

<configSections>
       <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
   </configSections>

    2。 在<system.web>与</system.web> 之间加入

<httpHandlers>
          <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
          <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
 </httpHandlers>

    或者

<system.web>                         
  <httpModules>                          
   <add type=”URLRewriter.ModuleRewriter, URLRewriter” name=”ModuleRewriter”/>                       
  </httpModules>                         
 </system.web>                                                                                   

3。配置伪静态的语法:在<configuration>与</configuration>之间加入<RewriterConfig> </RewriterConfig>节点。  

    在  <RewriterConfig>与</RewriterConfig>之间加入伪静态规则:      <Rules> <!–定义伪静态第一条规则开始–> <RewriterRule> <LookFor>~/xxxx/view(.[\d]*)\.html</LookFor> <SendTo>~/xxxx/view.aspx?id=$1</SendTo> </RewriterRule>   <!–定义伪静态第一条规则结束–> <!–定义伪静态第二条规则开始–> <RewriterRule> <LookFor>~/yyyy/(.[\d]*)/view.html</LookFor> <SendTo>~/yyyy/view.aspx?id=$1</SendTo> </RewriterRule>

例子如:

    <RewriterConfig>
       <Rules>
           <!--官网-->
           <RewriterRule>
               <LookFor>~/web/new/type-(.[0-9]*)\.html</LookFor>
               <SendTo>~/web/new.aspx?id=$1</SendTo>
           </RewriterRule>
           <RewriterRule>
               <LookFor>/index.html</LookFor>
               <SendTo>/index.aspx</SendTo>
           </RewriterRule>
           <RewriterRule>
               <LookFor>/aboutus/aboutusContent-(.*).html</LookFor>
               <SendTo>/aboutus/aboutusContent.aspx?pageurl=$1</SendTo>
           </RewriterRule>
         <RewriterRule>
               <LookFor>/shop/GiftList-(.*)-(.*).html</LookFor>
               <SendTo>/shop/GiftList.aspx?nav=$1&amp;price=$2</SendTo>
           </RewriterRule>
        <RewriterRule>
               <LookFor>/shop/list-(.*)-(.*)-(.*).html</LookFor>
               <SendTo>/shop/list.aspx?nav=$1&amp;licno=$2&amp;orderby=$3</SendTo>
           </RewriterRule>
           <RewriterRule>
               <LookFor>/shop/list-(.*)-(.*)-(.*)-(.*).html</LookFor>
               <SendTo>/shop/list.aspx?nav=$1&amp;licno=$2&amp;orderby=$3&amp;price=$4</SendTo>
           </RewriterRule>
       </Rules>
   </RewriterConfig>


或者

<RewriterConfig>
      <rewriter>                       
<rewrite   url="^(/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js)(\?.+)?)$"   to="$1" processing="stop" />       
<rewrite   url="~/lmh$" to="~/Users.aspx?user=lmh"   processing="stop" />       
<rewrite   url="~/tags/(.+)" to="~/tag/tagcloud.aspx?tag=$1"  processing="stop"/>        <rewrite   url="^~/mypage(\?.+)?$" to="~/index.htm$1"   processing="stop" />        <rewrite   url="~/article-([^-]+)-([^-]+)-([^-]+).html"    to="~/testurl/article.asp?id=$1&sid=$2&page=$3"  processing="stop"/>     
  <rewrite   url="^(.*)/(\?.+)?$" to="$1/index.htm$2?" />   
    </rewritr>
</RewriterConfig>

url是可以使用正则表达式的。比如上面的例子:

规则一:当发现文件类型为   .gif, .png,.jpg, .ico, .pdf, .css or .js时,停止rewrite

规则二:就是将/lmh重写到/Users.aspx?user=lmh,$在正则表达式中表示是串的结束,也就是说/lmhe是不会被重写到to后的地址的,如果把$去掉则可以

规则三:将tags/xxx重写为tag/tagcloud.aspx?Tag=xxx

规则四:当用户输入错误象mypagexxx形式的地址时,转到网站默认页面

规则五:设置用户网站的默认页面为index.htm

新添asp规则:将article.asp?id=13&sid=10&page=2通过伪静态转换成article-10-13-2.html格式来访问页面

第四部:配置IIS7.5 或IIS7.0
1.新建一个应用程序池:名称:任意如:aspnet;选择net 
FrameWork版本(如果你的网站时候2.0的话就选择2.0,我的是4.0)在此我选择Net FramWork v 4.030319. 
托管管道模式先暂时设置为集成模式。等下面的设置完成之后再将托管管道模式设置为经典模式。如果下面的设置完成之后不把应用程序设置为经典模式的话,伪静态的功能可以实现,但是页面的样式图片不能正常显示这是设置的关键。
2 新建一个网站 website ,将此站点的应用程序程序池设置为aspnet。
3 选中你的站点比如website ,并且切换到功能视图。双击【处理程序映射】在打开窗口右侧的操作栏目下做如下操作。
   3.1,【添加脚本映射】-路径为:*.html.可执行文件为:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll 
    注意:如果你的网站是2.0。可执行文件为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 。名称:任意,比如:html.
   3.2, 【添加通配符脚本映射】 请求路径为*。可执行文件为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,名称任意,比如:aspnet.
   3.3,【托管处理程序映射】(路径:* 可执行文件:System.Web.UI.PageHandlerFactory 名称 任意 比如Html-Integrate)
   3.4, 双击website站点切换到站点功能视图。然后双击模块,打开窗口之后在右侧的操作栏目下面,单击【添加托管模块】-》名称:任意 如aspnet 类型:URLRewriter.ModuleRewriter 并且 把【仅针对向asp.net 应用程序 或托管处理程序发出请求调用】前面的选项 勾上。(记住一定要勾上)。
   3.5 最后一步:双击iis7.0或7.5的应用程序池。在应用程序池列表中找到【aspnet】应用程序池。双击打开之后。将aspnet应用程序池的【托管管道模式】设置为经典模式。

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号