【问题标题】:How to get rid of INDEXING website FOLDERS如何摆脱 INDEXING 网站文件夹
【发布时间】:2012-07-14 13:36:31
【问题描述】:

我已将“index.html”文件放入每个文件夹以创建我的页面。

例如 www.mysite.com/volunteers/jasmine/ 将显示 jasmine 的页面,即文件夹“jasmine”中的 index.html。并且“志愿者”文件夹不包含任何“index.html”文件,但是当它在 URL 中键入如下 mysite.com/volunteers/ 时,它会在标题“/志愿者索引”下显示志愿者文件夹中的所有文件夹

404 错误文档仅有助于重定向 mysite.com/volunteers 而不是 mysite.com/volunteers/(末尾包含斜杠)

请帮助我摆脱这种情况。

提前谢谢你!

【问题讨论】:

  • 你使用什么网络服务器?阿帕奇?

标签: redirect indexing directory slash


【解决方案1】:

在 www.mysite.com 的主文件夹中创建一个名为 .htaccess 的文件

在该文件的顶部添加这一行并保存:

IndexIgnore * 

假设您使用的是 Apache Web 服务器,如果配置为检查 .htaccess(大多数情况下,尤其是在共享主机上),它将读取此规则并阻止对您的目录进行索引。

记住文件名为 .htaccess(以点开头,结尾没有文件后缀)


这里有一些东西可以给你一些想法,如果找不到文件或直接(-f 或 -d),你可以测试规则,然后执行重定向到你选择的文件:

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/volunteers/$1/$2 !-f
RewriteCond %{DOCUMENT_ROOT}/volunteers/$1/$2 !-d
RewriteRule ^volunteers/ /pageOfYourChoice.html? [R=301,L]

服务器规则有时是试验/错误,这就是为什么我用 .htacess 技巧共享该 URL,以便您确定什么是您想要实现的最佳方案。在这里,您可能想删除 $2 并假设所有内容都是志愿者,但不确定您如何设置您的应用程序以及您去了多少个目录。使用 .htaccess 进行试验/错误的好处是不需要重新加载/重新启动服务器,因此请尝试、测试、重复。

【讨论】:

  • 谢谢迈克!这有效,但它仍然显示标题“志愿者索引”,但不再显示文件夹。我可以摆脱正在显示的页面并将其重定向到其他页面吗?
  • Sarah,你可以使用这个命令而不是 IndexIgnore *(删除它并尝试这个): Options All -Indexes 它变得棘手和几种方法来做事。另一种选择是 DirectoryIndex ,您列出文件名,如果找不到,它将尝试另一个,等等。这是一个可能有帮助的链接:perishablepress.com/stupid-htaccess-tricks
  • 在上面那篇文章中,查看 301 重定向选项。它可能对你需要的东西来说太强大了,所以在你想要的行为得到满足之前一直玩下去。
  • 选项全部 - 索引覆盖 ErrorDocument 404 /notfound.html 并且 DirectoryIndex 不做任何更改。
  • 我也为您编辑了我的帖子,并为您提供了另一个选项,但如前所述,它是试验/错误。
【解决方案2】:

其他答案中有关 Apache 和 .htaccess 文件的信息是正确的,但如果您使用 Microsoft IIS 作为 Web 服务器而不是 Apache,则需要禁用目录浏览。在此处查看信息:

http://technet.microsoft.com/en-us/library/cc731109(v=ws.10)

要考虑的另一件事是,您可以简单地为该文件夹创建一个具有 META REFRESH 标记的 INDEX.HTML 页面,以将用户推送到其他地方。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Untitled Document</title>
  </head>
  <meta http-equiv="refresh" content="0;URL=/index.html" />
  <body>
  </body>
</html>

您也可以在 .htaccess 文件中进行重定向,但对于大多数用户来说,创建 HTML 文件更快更容易。

【讨论】:

  • 是的,我可以这样做,但是当我为其他文件夹(很多)做同样的事情时,它会做很多工作。那么有什么短的方法吗?以及如何使用 .htaccess Mike 做到这一点?请问?
  • 您还必须为每个文件夹执行 .htaccess。
  • 哎呀..我认为它可以在根文件夹中完成:/任何其他选择?
  • 抱歉,可能有一些方法可以在正确的位置使用单个 .htaccess 文件,但我不知道如何。
  • 您不需要在每个文件夹中都使用 .htaccess,如果存在但不需要它们,它们只会覆盖 root。如果您启用 mod 重写,您可以做更复杂的事情,但不确定您想深入研究多少。
猜你喜欢
  • 2013-09-09
  • 1970-01-01
  • 1970-01-01
  • 2020-11-29
  • 2020-03-23
  • 2020-09-28
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多