标签 iis 下的文章

在IIS 6 + php5.4.x + iirfmediawiki,配置short_url时,遇到一个不能理解的问题:保存配置的时候保存失败,从表证上来看应该是post到了一个错误的action但是又被泛重写规则给处理掉了,按照之前xcache admin认证失效的思路继续来操作:
给虚拟站点启用.net 2.x或者1.x -> 无效
修改注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0\,键:EnableExtensionlessUrls,值:0 -> 有效。

然后,遇到新问题,访问首页时,页面被重写到了Rejected-By-UrlScan?~/首页
卸载UrlScan后解决,如果装了UrlScan后如何避免还没研究,晚上在虚拟机里试试看。 

事情素这个样子:

xcache 3部署在iis6 + php 5.4.x的环境上(废话是fast-cgi模式),在php.ini中设定了
xcache.admin.enable_auth=On
xcache.admin.auth_user = "xxoo"
xcache.admin.pass = "ooxx"
后,访问XCache Administration界面的时候不停的蹦出来要求认证的窗口,不管你密码是不是正确的。

结合前段时间IIRF重写的时候遇到的一个诡异现象(就是重写规则没有命中,明明写对了),判断可能是.Net Framework作祟。
然后看了一下跑XCache Administration的站点的属性,,妥妥的Asp.Net 4.0。在IIS的这个站点的Asp.Net上版本选择成2.x或1.1,然后重启站点就没事儿了。
原因可能是因为Asp.Net 4.0会去修改请求Url之类的东西(比如IIRF那事儿,他会莫名其妙的加一个/eurl.axd******) ,然后这东西干扰了HTTP/1.1 401认证请求或者直接破坏了请求结果,具体为咩回头研究(也就是没空研究的节奏)。

环境:
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>


 然后就没有然后了。

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