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>‘,
            ),
        ),

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。