我有一个带有以下文本的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用户能够列出,读取和执行文件。
该网站有效,但漂亮的网址没有。
如果我使用常规经过身份验证的用户和SYSTEM权限将文件夹内容复制到另一个位置,它将按预期工作。
我想我缺少一些权限,可以使漂亮的URL与IIS7 URL重写模块一起正常工作,但不确定是什么。
在Linux中,服务器作为特殊用户运行是很常见的。 即使在Windows中我也习惯这种习惯,然后很容易为服务器配置访问权限。用户帐户无关紧要,然后与服务器相关。 然后,web目录中所有文件的所有权必须是web服务器的用户,即“IUSR”。 运行服务器的用户必须在IIS配置中进行调整,如果它与默认IIS用户“IUSR”不同。
仅对于与编辑相关的文件访问,可能需要对所有文件进行一些调整,但如果服务器作为用户运行,则更清楚的是用于编辑和服务器访问的文件访问是两个不同的目的。因此,您甚至可以调整对用户的有限文件的编辑访问权限,同时服务器可以完全访问所有文件。为不同的用户或用户组提供不同的访问权限也没有问题。
有关默认IIS用户的更多详细信息,请阅读Understanding Built-In User and Group Accounts in IIS 7