如何自动创建/更新index.html?

如何自动创建/更新index.html?

我在共享托管服务上有一个(子)域,其结构如下,我通过sftpLinux 平台对其进行控制。sindex.html尚不存在,我想自动创建它们,使其看起来非常简单,类似于。自动意味着每次我将新文件添加到目录中时Dir,目录index.html应该自动更新,或者在用户访问网站时创建。当用户单击目录的链接时index.html,目录应该会看到链接的 html 网站。

'--Subdomain_a
  '--httpdocs
    '--.htaccess
    '--index.html
    '--Dir1
      '--index.html
      '--file1.html
      '--file2.html
    '--Dir2
      '--index.html
      '--file1.html
      '--file2.html

我相信这应该可以实现,不需要太多努力或额外的软件。网络搜索结果建议在我的文件中添加Options +Indexes一行.htaccess

Deny from All
Allow from 123.456.789.10
Options +Indexes

然而,这并没有创造出index.htmls。

我的问题是,我不太确定自己在寻找什么。我只记得在互联网发展的早期,很多网站看上去都像我链接的示例一样简单,因此我相信这可能是 apache (?) 服务器生成的默认索引文件或类似的东西。

我怎样才能做到这一点?

答案1

您链接的网站确实使用了 Apache httpd 的自动目录索引。这是 Apache 附带的经典图标集,但许多其他 Web 服务器也有(通常更简单的)索引。

但是,它不是一个文件。目录索引不创造任何实际的 index.html 文件——Apache 只会生成页面在飞行中,每次有人发出 HTTP 请求时,即使它有效,您也永远不会看到 index.html 通过 SFTP 显示。(在这方面它就像 CGI 或 WSGI 应用程序。)

通常Options +Indexes应该足以启用此功能。但你没有看到自动索引通过 HTTP,那么实际上可能是您的网络主机为用户禁用了 AllowOverrides,或者实际上甚至没有加载“mod_autoindex”模块 - 这些不是您可以通过 .htaccess 修复的问题;它必须由主机来完成。

另一种方法是使用 PHP 页面来生成这样的索引(大多数共享主机都支持 PHP),然后您可以使用“DirectoryIndex”让 httpd 使用该页面作为默认的“索引文件”。全部目录,而无需手动将其复制到那里。PHP 脚本将被告知它正在为哪个位置提供服务,并可以相应地生成文件列表。(有一些这样的程序可以构建非常花哨的索引,但在你的情况下,我只需要从头开始。)

相关内容