IIS下 Yii Url重写

8/31/2015来源:PHP技巧人气:2670

IIS下 Yii Url重写
  1. 下载URL重写组件 http://www.microsoft.com/zh-cn/download/details.aspx?id=7435
  2. 导入官方提供的.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>',            ),        ),