2012年10月

环境:
IIS 7
URL Rewrite 2
Yaf 2.1.18
PHP 5.4.7

现象:
默认的Yaf_Route_Static不能正确解析地址进行派遣,表征就是不管怎么访问都是访问到defaultController的defaultAction。

原因:
Yaf_Route_Static是依靠$_SERVER['REQUEST_URI']里的地址进行解析,不管怎么个重写规则(当然可能是俺写错了),RequestURI是类似Controller/Action的格式,而不是index.php/Controller/Action

解决:
bootstrap中注册Roter为Yaf_Route_Supervar(别的应该也行,没试),然后修改重写为类似(web.config)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Yaf Rewrite" stopProcessing="true">
                    <match url="^(.*)$" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php?r={R:0}" appendQueryString="false" logRewrittenUrl="false" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>


 然后就没有然后了。

这下了班就犯困没有编码欲望-_-