使用index.html的正确方法


9

我有很多问题想听听您的意见,所以希望我能尽力解释一下。我还应该指出,我的初学者只具备HTML和CSS的知识,因此尽管我几乎可以肯定有使用功能强大的PHP的简单解决方案,但对我没有帮助

假设我的地址上有我的个人博客,example.com/blog.html并且有指向多个子博客的链接example.com/blog/math.htmlexample.com/blog/coding.html等等。所以我的根文件夹包含blog.htmlblog文件夹,blog文件夹本身包含文件math.htmlcoding.html

首先,我从Google Webmasters Tools那里了解到,出于SEO和美学目的,最好统一起来example.com.com并在来源中example.com/index.html添加_rel="canonical"_属性index.html。通过使用其他一些技巧(例如链接到.././),我摆脱了index.html出现在我的网址中的难看内容。

现在,我想知道这种技巧是否不仅可以用于根文件夹,还可以用于任何文件夹?我的意思是,我会提出我blog.htmlblog的文件夹,将其重命名为index.html和添加rel="canonical"统一example.com/blog/index.html使用example.com/blog/
这个技巧会将我的博客地址从更改example.com/blog.htmlexample.com/blog/

没做完!Google机器人索引我的文件夹时也遇到问题。因此,当我键入site:example.com/google搜索时,example.com/blog/其他结果中会出现指向我的文件夹的链接,其中包含原始文件,图标等。我猜还有其他方法可以解决它,但是恕我直言,上述更改也可以解决问题-Blog 文件夹中的index.html将使用户无法查看该文件夹的实际原始内容,只会出现example.com/blog/google搜索中的正确链接,并且(希望如此)_rel="canonical"_将使第二个不需要的链接example.com/blog/index.html不会出现在搜索结果中。

所以我的问题是:

  1. index.html文件放在每个子文件夹中还是一个好习惯,还是只打算放在根文件夹中?
  2. 使用第二种“ 在每个文件夹中建立索引 ”方法时,是否会出现任何不利条件或问题?
  3. 希望使用上述两种网站结构中的哪一种方法?

为澄清起见,搜索引擎是否将site.com/blogsite.com/blog/index.html视为2个不同的文件?如果同时使用两个URL的链接,那么是否有可能在两个位置之间拆分链接汁/页面权限?

据我所知,搜索引擎(至少是Google)确实将它们视为两个不同的文件。因为它们实际上可以是不同的-两个链接只能在一个斜杠中不同。(在此处了解更多信息。)是的,如果您使用两个不同的链接指向一个页面,则页面的整个等级将在这两个链接之间分配,您的页面实际上将失去其一半的排名。这就是为什么我建议提到的链接规范化以防止这些泄漏。
Jeyekomon

Answers:


13

我们之所以使用index.html或其home.html衍生产品,是因为Web服务器软件本身实际上是在寻找并提供服务。例如:

这是无效的:(www目录)

/var/www/
|_blog.html
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

实际上,这将作为列出文件夹和文件的页面提供。(不是您想要的)。您可以尝试这种结构,也可以在blog.html旁边创建一个index.html文件。请注意,除非您指定,否则它将不提供blog.html。http://www.site.com/blog.html这就是为什么http://www.google.com/无需指定即可显示页面的原因http://www.google.com/index.html

这是有效的:

/var/www/
|_index.html (renamed blog.html to index.html)
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

这将作为blog.html主页提供您的文件。(不列出该目录中的所有文件夹/文件)

网络服务器软件具有(在配置中)专门的文件名列表,这些文件名将用作文件夹的主页或主页。(根据我的经验,index.html将优先的index.php,所以如果你有index.htmlindex.php文件夹中,中的index.html就是市民将看到),当然,这都是可以改变的,你甚至可以设置blog.html被确认为“指数”。

解决您的评论:

“此技巧会将我的博客地址从www.xxx.com/blog.html更改为www.xxx.com/blog/。”

这可以通过blog.html完全移入/blog/并将其重命名为index.html来完成。

您的新结构将是:

/var/www/
|_blog/
  |_index.html (renamed from blog.html)
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

这应该正确http://www.site.com/blog/显示了我们重新命名为的blog.html的内容,index.html以便软件可以将其设置为目录的索引/blog/

您现在也可以自由地放置并index.html归档到网站的根目录中,http://www.site.com/(index.html)以链接到/blog/您想要的任何东西。

简短地具体回答您的问题:

  1. 在每个子文件夹中都有index.html文件是一种好习惯吗?还是仅将其放在根文件夹中?

    是的,因为它阻止人们看到您目录中的文件。您可以使用.htaccess包含以下内容的文件来防止这种情况Options -Indexes

  2. 当使用第二种“每个文件夹中的索引”方法时,是否会出现任何不利条件或问题?

    我没有想到的。

  3. 您希望使用上述两种网站结构中的哪一种方法?

    我通常在根目录中有一个index.htmlor index.php文件,根据类别(如forumor newsloginetc等)创建子文件夹,然后在其中的每个目录中都有某种索引。


谢谢您这么全面的回答!公众对我的文件夹的访问以及谷歌对它们进行索引的事实使我非常生气,所以现在当我知道“每个文件夹中的索引”技巧没有问题时,我将以这种方式更改我的网站。我只是希望rel =“ canonical”技巧能起作用,并且所有这些索引都不会出现在Google搜索中...:D
Jeyekomon 2012年

6

index.html的技术术语是Apache的目录索引和IIS的默认文档。另一个感兴趣的Apache指令是Options指令。如文档中所示,Options Indexes设置了时间:

如果请求映射到目录的URL,并且该目录中没有DirectoryIndex(例如index.html),则mod_autoindex将返回该目录的格式化列表。

当我设置不使用内容管理系统的网站时,我的首选设置是每个目录具有一个内容页面。该页面是目录的目录索引(默认文档)。网站上的所有链接仅链接到目录,并以斜杠结尾(例如,http://example.com/blog/代替http://example.com/blog/index.html./blog/代替./blog/index.html)。尾部的斜杠对于避免通常称为礼节性重定向很重要。(如果省略了斜杠,所有内容仍然可以正确解析,但是HTTP请求的数量因此增加了带宽。)

我对上述方法的主要动机是双重的。首先,它有助于切换网站上使用的技术。例如,我可以将页面从index.html更改为index.php,而不会破坏任何链接或搜索引擎列表。其次,内容页面的文件扩展名是“ noise”;从网址中删除文件扩展名会导致网址更短,并希望其可读性更高。

至于其他文件类型:

  • 所有CSS文件都位于网站根目录中的css目录中。
  • 所有图像文件都位于网站根目录中的图像目录或其子目录中。
  • 所有JavaScript文件都位于网站根目录中的scripts目录中。
  • 所有Flash和其他电影文件都位于网站根目录中的视频目录或其子目录中。

在Apache服务器上,我禁用Options Indexes了上述目录。在Apache和IIS服务器上,我都没有为上述目录指定目录索引(默认文档)。因此,对任何目录的请求都会导致HTTP 403错误。


由于这两个链接限制的限制,我无法在答案中包括指向目录索引默认文档的链接,所以这里是。
瑞安·普雷切尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.