(差不多)空的index.html文件

时间:2014-07-11 03:01:08

标签: html

在我的apache目录中使用名为index.html的几乎为空的文件以避免目录列表(例如/ image文件夹)时,此文件的最小内容是什么?它可以是空的,还是应该包含类似的内容:

<!DOCTYPE html><title></title>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
&npsp;
</body>
</html>

或介于两者之间?

4 个答案:

答案 0 :(得分:5)

实际上,第一行代码是最低有效HTML5代码。 <!DOCTYPE html><title> </title>

虽然你必须有一个标题,但它是一个空格或文本。如果您不想提供标题以获得有效标记,请使用完整声明。

可以使用W3C validator

验证

答案 1 :(得分:2)

如果您只是想避免目录列表,可能最好为错误代码403创建一个页面,然后在Apache配置中更改以下内容:

Options Includes Indexes FollowSymLinks MultiViews

为:

Options Includes FollowSymLinks MultiViews

从列表中删除Indexes。如果您无权访问http.conf文件,则将Options -Indexes放入.htaccess文件会产生相同的效果。这将使Apache在访问者尝试访问之前导致目录列表的URL时发送403 Access Denied错误。现在,您需要做的就是将这些错误重定向到您自己的自定义错误页面。您可以使用

执行此操作
ErrorDocument 403 /path/to/custom403errorpage.html

这不仅是一种更简单,更安全的方式,而且还让用户知道他们不应该环顾你的东西。

答案 2 :(得分:1)

为避免目录列表,您根本不需要HTML文件。您只需在文件夹中添加.htaccess文件即可。要禁用文件夹列表,请将此行添加到.htaccess文件

Options -Indexes 

请注意,默认情况下,大多数实时主机目录列表都已禁用

答案 3 :(得分:0)

作为关于正式最小HTML文档的问题,这取决于HTML的版本。关于问题中的替代方案,第一个根据当前的HTML5草案无效(title元素必须有一些内容,例如空格),第二个根本不是最小的(它有许多可选的)并且它无效(doctype声明中缺少URL,并且未定义实体引用&npsp;);此外,HTML 4.0在1999年被HTML 4.01淘汰。

为了避免目录列表(也可以通过其他方式避免),任何文件都可以,甚至是空文件。

但是,空文件或包含空白内容的HTML文档会在用户尝试访问http://foo.example.com/images/时出现http://foo.example.com/images/index.html时向用户显示空白页面无内容。因此,您可以考虑使用以下内容:

<!doctype html>
<title>Directory listing not allowed</title>
Directory listing not allowed.