IIS下 Yii Url重写

时间:2021-09-28 17:22:13
  1. 下载URL重写组件 http://www.microsoft.com/zh-cn/download/details.aspx?id=7435
  2. IIS下 Yii Url重写IIS下 Yii Url重写
  3. 导入官方提供的.htaccess文件

    

Options +FollowSymLinks

   IndexIgnore */*

   RewriteEngine on

   # if a directory or a file exists, use it directly

   RewriteCond %{REQUEST_FILENAME} !-f

   RewriteCond %{REQUEST_FILENAME} !-d

   # otherwise forward it to index.php

   RewriteRule . index.php

自动生成的web.config如下

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="false" />
<rewrite>
<rules>
<rule name="已导入的规则 1">
<match url="." ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

  5. 修改config.php

'urlManager' => array(
'urlFormat' => 'path', //URL 格式。共支持两种格式: 'path' 格式( 如:/path/to/EntryScript.php/name1/value1/name2/value2... ) 和'get' 格式( 如:/path/to/EntryScript.php?name1=value1&name2=value2...)。当使用'path'格式时,需要设置如下的规则:
'showScriptName'=>false,
// 'urlSuffix'=>'.html',
'rules' => array(//URL 规则。语法:<参数名:正则表达式>
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
),