1

我正在尝试在我的网站上的一个文件夹中显示简单的 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 扩展名的内容。这是怎么回事?

4

3 回答 3

1

您需要为 IIS 用户添加权限。尝试通过添加用户 IIS_IUSRS向文件夹添加权限并提供所需的权限。

1.右键单击文件夹,进入属性 2.进入安全选项卡 3.单击编辑,如果在有权限的用户列表中没有看到 IIS_IUSRS 4.单击添加,在框中添加 IIS_IUSRS 并单击在检查名称时,它将获得限定名称。5.点击确定并申请

希望它应该工作

于 2013-09-21T04:21:57.953 回答
1

通过反复试验,我找到了原因,并通过 URL Rewrite 解决了这个问题。

对于表单的 URL:

http://www.MYSITE/myblog/index.php/2013/04/29/SOMEFILE.html

问题出在index.php文件夹名称中。IIS 不允许我访问具有该名称的文件夹中的任何文件。如果我重命名文件夹(甚至是“扩展”部分),一切正常。

于 2013-09-28T02:53:14.820 回答
0

这让人想起 Joomla 虚拟 (SEO) URL。我假设您根本没有静态文件,但是运行您的站点的 CMS 程序会在“index.php”之后解析此信息作为数据库查询的参数,以动态创建 html 页面。在这种情况下,Web 服务器真正服务的唯一文件是 index.php,并且该程序根据输入的参数包含其他 php 文件。虽然你在正确的轨道上,在目标服务器上创建一个小文件并尝试加载它,但这意味着 index.php 目录结构没有实际意义。

于 2016-04-19T14:23:36.603 回答