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

Sha*_*ika 10 php iis-7 pretty-urls url-rewrite-module yii2

我有一个带有以下文本的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>
Run Code Online (Sandbox Code Playgroud)

通常当我在我的Windows机器上开发时,带有我的PHP源的文件夹对所有经过身份验证的用户都有权限,而我Yii2网站中的漂亮URL工作没有任何问题.

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

该网站有效,但漂亮的网址没有.

如果我使用常规身份验证的用户和SYSTEM权限将文件夹内容复制到另一个位置,它将按预期工作.

我想我缺少一些权限,可以使漂亮的URL与IIS7 URL重写模块一起正常工作,但不确定是什么.

Dav*_*vid 1

在 Linux 中,服务器以特殊用户身份运行是很常见的。
我什至在 Windows 中也应用了这个习惯,并且很容易配置服务器的访问权限。用户帐户与服务器无关。
Web 目录中所有文件的所有权必须是 Web 服务器的用户,即“IUSR”。
如果服务器运行的用户与默认 IIS 用户 “IUSR”不同,则必须在 IIS 配置中进行调整。

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

有关默认 IIS 用户的更多详细信息,您可以阅读了解 IIS 7 中的内置用户和组帐户