Yii2 / PHP / IIS7-URL重写和文件权限(Pretty URL问题)

时间:2018-08-08 07:17:35

标签: php yii2 iis-7 url-rewrite-module pretty-urls

我有一个带有以下文本的web.config文件,尽管与我的问题无关...

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Pretty URL">
                    <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>

通常,当我在Windows计算机上进行开发时,带有PHP源的文件夹对所有经过身份验证的用户都具有权限,并且Yii2网站中的漂亮URL可以正常工作。

现在,我的下一个项目要求我在非管理员用户也将使用的Windows机器上进行部署,并且我测试了将Yii2网站部署到一个文件夹,该文件夹使IUSR用户能够列出,读取和执行文件。 / p>

该网站正常运行,但漂亮的网址无效。

如果我将文件夹内容复制到具有常规身份验证用户和SYSTEM权限的其他位置,则它将按预期工作。

我认为我缺少一些权限,这些权限将使漂亮的URL能够与IIS7 URL Rewrite模块一起正常工作,但不确定是什么。

1 个答案:

答案 0 :(得分:0)

在Linux中,服务器通常以特殊用户身份运行。
即使在Windows中,我也遵循这种习惯,然后可以轻松地为服务器配置访问权限。 用户帐户与服务器相关就无关紧要。
网络目录中所有文件的所有权必须是网络服务器的用户,即“ IUSR”。
如果服务器的运行用户不同于默认的IIS用户“ IUSR”,则必须在IIS配置中调整

仅对于与编辑有关的文件访问,可能需要对所有文件进行一些调整,但是如果服务器以用户身份运行,则也很清楚,用于编辑和用于服务器访问的文件访问是两个不同的目的。因此,即使服务器对所有文件都具有完全访问权限,您甚至可以为用户调整对受限文件的编辑访问权限。为不同的用户或用户组赋予不同的访问权限也没问题。

有关默认IIS用户的更多详细信息,您可以阅读Understanding Built-In User and Group Accounts in IIS 7