【问题标题】:Yii2/PHP/IIS7 - URL Rewrite and File Permissions (Pretty URL issue)Yii2/PHP/IIS7 - URL 重写和文件权限(漂亮的 URL 问题)
【发布时间】:2018-08-08 07:17:34
【问题描述】:

我有一个带有以下文本的 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 用户能够列出、读取和执行文件。

网站可以工作,但漂亮的网址却不行。

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

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

【问题讨论】:

  • 你看过这个post
  • @MuhammadOmerAslam 如上所述,问题不在于 web.config 语法,而且我的语法与帖子中的语法匹配。

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


【解决方案1】:

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

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

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

【讨论】:

  • IUSR 用户拥有网站文件夹的完全权限。
  • 如果您将一些文件复制到网站文件夹中,您可能还必须将权限应用到新文件,或者再次递归地应用到网站文件夹。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
  • 1970-01-01
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多