论坛风格切换
  • 7714阅读
  • 3回复

[iis相关]IIS 7的伪静态如何安装,使用 [复制链接]

上一主题 下一主题
离线太史慈
 

发帖
766
金币
626
威望
556
只看楼主 倒序阅读 使用道具 楼主  发表于: 2011-06-20
— 本帖被 云天河 从 版本问题解决方案 移动到本区(2011-07-12) —
iis 6时代,网上可以下载到免费的,试用版的rewrite组件
iis 7时代,官网配好了rewrite组件,不过默认是没安装的,需要自己去下载哦
iis 7也可以用免费的rewrite组件,见3楼,建议用这种方法,简单易用,不要用iis自带的,那个写规则写死你。


下面先来解析下iis自带的组件使用方法:
在服务器上安装Microsoft URL Rewrite Module,具体下载地址如下:
Microsoft URL Rewrite Module for IIS 7.0 (x86)
下载地址:http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1691  
Microsoft URL Rewrite Module for IIS 7.0 (x64)
下载地址:http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1692


点开下载地址:


选择安装后:


安装好后,进入iis的网站管理器中,会发现多了这个


首先编辑一条pw的默认规则,如下:


编辑好后到论坛的根目录下,会发现web.config文件,现在直接编辑这个文件就可以了。
把规则改成
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.     <system.webServer>
  4.         <rewrite>
  5.             <rules>
  6.                 <rule name="pw默认read-htm-tid-1.html">
  7.                     <match url="^(.*)-htm-(.*)$" />
  8.                     <action type="Rewrite" url="{R:1}.php?{R:2}" />
  9.                 </rule>
  10.             </rules>
  11.         </rewrite>
  12.     </system.webServer>
  13. </configuration>

现在pw的默认伪静态就好了。


[url=http://www.phpwind.com]phpwind[/url]
离线太史慈

发帖
766
金币
626
威望
556
只看该作者 沙发  发表于: 2011-06-20
来一个特殊的规则,就http://phpwind.me/1.html这样的地址

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.     <system.webServer>
  4.         <rewrite>
  5.             <rules>
  6.                 <rule name="f2_1_1">
  7.                     <match url="^f(\d+)_(.*)_(.*)$" />
  8.                     <action type="Rewrite" url="thread.php?fid={R:1}&page={R:2}&type={R:3}" />
  9.                 </rule>
  10.                 <rule name="f2_1">
  11.                     <match url="^f(\d+)_(.*)$" />
  12.                     <action type="Rewrite" url="thread.php?fid={R:1}&page={R:2}" />
  13.                 </rule>
  14.                 <rule name="f2">
  15.                     <match url="^f(\d+)$" />
  16.                     <action type="Rewrite" url="thread.php?fid={R:1}" />
  17.                 </rule>
  18.                 <rule name="1_1_1.html">
  19.                     <match url="^(\d+)_(.*)_(.*).html$" />
  20.                     <action type="Rewrite" url="read.php?tid={R:1}&page={R:2}&fpage={R:3}" />
  21.                 </rule>
  22.                 <rule name="1_1.html">
  23.                     <match url="^(\d+)_(.*).html$" />
  24.                     <action type="Rewrite" url="read.php?tid={R:1}&page={R:2}" />
  25.                 </rule>
  26.                 <rule name="1.html">
  27.                     <match url="^(\d+).html$" />
  28.                     <action type="Rewrite" url="read.php?tid={R:1}" />
  29.                 </rule>
  30.                 <rule name="read-htm-tid-1.html">
  31.                     <match url="^(.*)-htm-(.*)$" />
  32.                     <action type="Rewrite" url="{R:1}.php?{R:2}" />
  33.                 </rule>
  34.             </rules>
  35.         </rewrite>
  36.     </system.webServer>
  37. </configuration>


require/common.php

function urlRewrite($url) {
函数修改成
  1. function urlRewrite($url) {
  2. global $db_htmifopen, $db_dir, $db_ext;
  3. if (!$db_htmifopen) return $url;
  4.      if (!preg_match('/^(http|ftp|telnet|mms|rtsp)|admin.php|rss.php/i', $url)){
  5.          $add = strpos($url, '#') !== false ? substr($url, strpos($url, '#')) : '';
  6.          if(strpos($url, 'thread.php?') !== false){
  7.              unset($rw);
  8.              $tharr = explode('&', substr(str_replace($add, '', $url), 11));
  9.              foreach($tharr as $key => $value){
  10.                  $ru = explode('=', $value, 3);
  11.                  if($ru['1']){
  12.                      switch($ru['0']){
  13.                      case 'fid':
  14.                          $rw['fid'] = $ru['1'];
  15.                          $rw['para'] < 1 && $rw['para'] = 1;
  16.                          break;
  17.                      case 'page':
  18.                          $rw['page'] = $ru['1'];
  19.                          $rw['para'] < 2 && $rw['para'] = 2;
  20.                          break;
  21.                      case 'type':
  22.                          $rw['type'] = $ru['1'];
  23.                          $rw['para'] < 4 && $rw['para'] = 4;
  24.                          break;
  25.                      default:
  26.                          $rw['para'] = 8;
  27.                          $urlfail = 1;
  28.                          break;
  29.                          }
  30.                      }
  31.                  }
  32.                  switch($rw['para']){
  33.                  case '1':
  34.                      $url = "f" . $rw['fid'] ;
  35.                      break;
  36.                  case '2':
  37.                      $url = "f" . $rw['fid'] . "_" . $rw['page'] ;
  38.                      break;
  39.                  case '4':
  40.                      $url = "f" . $rw['fid'] . "_" . $rw['page'] . "_" . $rw['type'] ;
  41.                      break;
  42.                      }
  43.          }elseif(strpos($url, 'read.php?') !== false){
  44.              unset($rw);
  45.              $rarr = explode('&', substr(str_replace($add, '', $url), 9));
  46.              foreach($rarr as $key => $value){
  47.                  $ru = explode('=', $value, 2);
  48.                  if($ru['1']){
  49.                      switch($ru['0']){
  50.                      case 'tid':
  51.                          $rw['tid'] = $ru['1'];
  52.                          $rw['type'] < 1 && $rw['type'] = 1;
  53.                          break;
  54.                      case 'page':
  55.                          $rw['page'] = $ru['1'];
  56.                          $rw['type'] < 2 && $rw['type'] = 2;
  57.                          break;
  58.                      case 'fpage':
  59.                          $rw['fpage'] = $ru['1'];
  60.                          $rw['type'] < 3 && $rw['type'] = 3;
  61.                          break;
  62.                      default:
  63.                          $rw['type'] = 4;
  64.                          $urlfail = 1;
  65.                          break;
  66.                          }
  67.                      }
  68.                  }
  69.              switch($rw['type']){
  70.              case '1':
  71.                  $url = $rw['tid'] . ".html";
  72.                  break;
  73.              case '2':
  74.                  $url = $rw['tid'] . "_" . $rw['page'] . ".html";
  75.                  break;
  76.              case '3':
  77.                  $url = $rw['tid'] . "_" . $rw['page'] . "_" . $rw['fpage'] . ".html";
  78.                  break;
  79.                  }
  80.              }
  81.          if($urlfail){
  82.              $url = str_replace(
  83.                 array('.php?', '=', '&', $add),
  84.                  array($db_dir, '-', '-', ''),
  85.                  $url
  86.                 ) . $db_ext . $add;
  87.              }
  88.          }elseif(strpos($url, 'hack.php?') !== false){
  89.              unset($rw);
  90.              $rarr = explode('&', substr(str_replace($add, '', $url), 9));
  91.              foreach($rarr as $key => $value){
  92.                  $ru = explode('=', $value, 2);
  93.                  if($ru['1']){
  94.                      switch($ru['0']){
  95.                      case 'H_name':
  96.                          $rw['H_name_value'] = $ru['1'];
  97.                          if(in_array($rw['H_name_value'],array('fenlei','mm'))){
  98.                              $rw['type'] = 1;
  99.                          }
  100.                          break;
  101.                      }
  102.                  }
  103.                  switch($rw['type']){
  104.                  case '1':
  105.                      $url = $rw['H_name_value'] . "/";
  106.                      break;
  107.              //case '2':
  108.              //    $url = $rw['tid'] . "_" . $rw['page'] . ".html";
  109.              //    break;
  110.              //case '3':
  111.              //    $url = $rw['tid'] . "_" . $rw['page'] . "_" . $rw['fpage'] . ".html";
  112.              //    break;
  113.                  }
  114.              }
  115.          }
  116.      return "$url";
  117. }



[url=http://www.phpwind.com]phpwind[/url]
离线top

发帖
336
金币
0
威望
59
只看该作者 板凳  发表于: 2011-07-07
离线太史慈

发帖
766
金币
626
威望
556
只看该作者 地板  发表于: 2011-11-10
使用外带的组件rewrite
下载地址http://www.helicontech.com/download-isapi_rewrite3.htm
选择适合您系统的版本,装上。
然后筛选器里面加载,基本使用方法同iis6
http://phpwind.me/1145.html
规则也和iis6一样。
强烈推荐用这种方法。
[url=http://www.phpwind.com]phpwind[/url]
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
提到某人:
选择好友
上一个 下一个