我正在尝试在我的网站上的文件夹中显示简单的HTML文件。没有ASP.NET,没有应用程序,只有虚拟目录。当我尝试打开网页时,我在浏览器中收到“拒绝访问”。
这是通过托管服务提供商;我只能通过FTP和IIS管理器访问。
授权规则显示允许 - 所有用户 - 继承。
我远不是IIS的专家,大多数搜索结果或建议检查文件系统中的文件夹权限(我无法直接访问)或与应用程序相关。
我该如何诊断?
更多信息:
通过反复试验,我找到了原因,并通过URL Rewrite解决了这个问题。我仍然想知道为什么它正在发生(根本原因)以及如何改变IIS的行为。
我正在将我的网站从Linux托管移动到Windows托管。一些旧URL的格式如下:
http://www.MYSITE/myblog/index.php/2013/04/29/SOMEFILE.html
我正在移动的是HTML文件,而不是PHP文件,但我试图镜像文件夹结构。
问题出在index.php
文件夹名称中。无论我做什么,即使我启用了目录浏览,IIS也不会让我访问具有该名称的文件夹中的任何文件。如果我重命名文件夹(甚至“扩展”部分),一切都有效。
我已经扫描了许多IIS设置,但没有发现任何禁止.php扩展名的提及。发生了什么事?
答案 0 :(得分:1)
您需要为IIS用户添加权限。尝试通过添加用户为该文件夹添加权限 IIS_IUSRS 并提供所需的权限。
1.右键单击文件夹,转到属性 2.转到安全选项卡 3.如果在用户列表中没有看到具有权限的IIS_IUSRS,请单击“编辑” 4.单击Add,在框中,添加IIS_IUSRS并单击检查名称,它将 获得合格的名称。 5.单击“确定”并应用
希望它应该起作用
答案 1 :(得分:1)
通过反复试验,我找到了原因,并通过URL Rewrite解决了这个问题。
对于表单的网址:
http://www.MYSITE/myblog/index.php/2013/04/29/SOMEFILE.html
问题出在index.php
文件夹名称中。 IIS不允许我访问具有该名称的文件夹中的任何文件。如果我重命名文件夹(甚至“扩展”部分),一切都有效。
答案 2 :(得分:0)
这让人想起Joomla虚拟(SEO)网址。我假设您根本没有静态文件,但运行您网站的CMS程序会在" index.php"之后解析此信息。作为数据库查询的参数,可以动态创建html页面。在这种情况下,Web服务器实际提供的唯一文件是index.php,程序包含其他php文件,具体取决于输入的参数。您已经走上正轨,在目标服务器上创建一个小文件并尝试加载它,但这意味着index.php目录结构没有实际意义。