win2012 r2 + IIS8.5 +url重写模块2.0

服务器搬迁,从win2003+IIS6.0,转为win2012 r2 + IIS 8.5,以前使用的是老版本的ISAPI_Rewrite,规则写在 httpd.ini中,现在为 URL rewrite 重写模块 2.0

1、安装 Url Rewrite 2.0 https://www.microsoft.com/zh-cn/download/details.aspx?id=7435
 下载后双击,安装即可在“IIS管理器”中找到 “URL重写”图标。
win2012 r2 + IIS8.5 +url重写模块2.0_第1张图片


2、双击“URL重写”,有.htacess或 httpd.ini(需要选择所有文件类型) 文件的可以点击右侧“导入规则”,导入后会在web.config中自动添加规则。没有的可以直接“添加规则”

导入httpd.ini,会提示异常,需要去掉[N,I] 、[F,I,O] 等,只保留 RewriteRule 后面的规则,旧规则中的 “/”开头 ,需要改为“^”开头,否则会有404错误,如
RewriteRule /News/search\?k=([^\.]+) /news/search\.aspx?k=$1。注:?k=([^\.]+)这里在浏览器里访问会失效,先保留,后面会处理

其中 /News/search\?k=([^\.]+) 需要改为 ^News/search?k=([^\.]+)$

win2012 r2 + IIS8.5 +url重写模块2.0_第2张图片


3、解决URL重写参数带“\?”的问题——双击带?号的规则,进入编辑窗口

—— 去掉“\?”及起后面的文字。如:/News/search-p([0-9]+)\?k=([^\.]+)  ——^News/search-p([0-9]+)$

win2012 r2 + IIS8.5 +url重写模块2.0_第3张图片

—— 下拉找到“条件”,“添加条件”:
         条件输入:{QUERY_STRING}
         检查输入字符串师傅:与模式匹配
         模式:k=([^\.]+])

win2012 r2 + IIS8.5 +url重写模块2.0_第4张图片

——下拉找到“操作”:
        去掉:&k={R:2}
        勾选:附加查询字符串

win2012 r2 + IIS8.5 +url重写模块2.0_第5张图片

4、点击右侧“应用”,重启站点即可。

也可以直接修改web.config, $ 结尾,否则多个参数时,有可能无法获得参数

      
      
        
            
                
                    
                    
                    
                    
                        
                     
                    
                    
                    
                    
                    
                        
                    
                   
                
                    $" ignoreCase="true" />
                    &page={R:2}" appendQueryString="false" />
                
                
                 
        
      





你可能感兴趣的:(服务器)