我有一个带有以下文本的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模块一起正常工作,但不确定是什么。
答案 0 :(得分:0)
在Linux中,服务器通常以特殊用户身份运行。
即使在Windows中,我也遵循这种习惯,然后可以轻松地为服务器配置访问权限。
用户帐户与服务器相关就无关紧要。
网络目录中所有文件的所有权必须是网络服务器的用户,即“ IUSR”。
如果服务器的运行用户不同于默认的IIS用户“ IUSR”,则必须在IIS配置中调整。
仅对于与编辑有关的文件访问,可能需要对所有文件进行一些调整,但是如果服务器以用户身份运行,则也很清楚,用于编辑和用于服务器访问的文件访问是两个不同的目的。因此,即使服务器对所有文件都具有完全访问权限,您甚至可以为用户调整对受限文件的编辑访问权限。为不同的用户或用户组赋予不同的访问权限也没问题。
有关默认IIS用户的更多详细信息,您可以阅读Understanding Built-In User and Group Accounts in IIS 7