重写规则在IIS上不起作用

时间:2013-10-09 18:23:56

标签: php iis yii url-rewriting

我在php上进行IIS编程。我正在使用的PHP框架是Yii。隐藏index.php并使用友好网址我在urlManager文件上启用了config.php。我的问题是,当我尝试导航到我的控制器服务器返回错误404.我认为重写规则有问题但我不熟悉IIS网络服务器。有人能帮助我吗?

1 个答案:

答案 0 :(得分:2)

我已经解决了我的问题。这是.htaccess中的原始规则:

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="Hide Yii Index" stopProcessing="true">
            <match url="." ignoreCase="false" />
            <conditions>
            <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" appendQueryString="true" />
        </rule> 
        </rules>
    </rewrite>

</system.webServer> 
</configuration>