我在共享托管服务上有一个(子)域,其结构类似于我通过sftp
Linux 平台控制的结构。index.html
s 尚不存在,我想自动创建它们以使其看起来非常简单,类似于this。自动意味着每次我将新文件添加到Dir
ectories 时,index.html
s 都应该自动更新,或者在用户访问站点时创建。当用户单击 的链接时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.html
s。
我的问题是我不确定我在寻找什么。我只记得在互联网的早期,很多网站看起来都很简单,就像我的链接示例一样,我相信这可能是 apache (?) 服务器生成的默认索引文件或类似的东西。
我怎样才能做到这一点?
您链接到的站点确实使用了 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 脚本将被告知它正在为哪个位置提供服务,并可以相应地生成文件列表。(有一些这样的程序可以构建非常漂亮的索引,但在你的情况下,我只是从头开始。)