【问题标题】:Use 2 different 404 pages dependent on directory根据目录使用 2 个不同的 404 页面
【发布时间】:2012-09-19 02:51:27
【问题描述】:

我正在尝试使用 2 个单独的 404 页面,具体取决于用户当前所在的目录。我认为您可以使用目录中的 .htaccess 文件执行此操作,但它不起作用。这甚至可能吗?

示例:用户正在查看 www.domain.com 中的文档。此目录应使用 number1_404.html。

示例 2:用户正在查看 www.domain.com/other_directory 中的文档。此目录应使用 number2_404.html。

我完全不确定如何为此编写规则,但这是我现在拥有的,但它不起作用。

.htaccess <--- in the root folder /httpdocs
ErrorDocument 404 /root_404.php

.htaccess <---- in the subdirectory /httpdocs/subdirectory
ErrorDocument 404 /subdirectory/subdirectory_404.php

也许我不明白这一切是如何运作的,所以请原谅我的无知。

【问题讨论】:

  • ErrorDocument 就是这样工作的,你做对了,其他的一定是错的
  • 是的,我意识到我在 .htaccess 文件的底部有多余的空白区域,这让 apache 很不高兴。一旦我删除了空白区域,它就起作用了。

标签: html apache .htaccess


【解决方案1】:

使用 2 个不同的 .htaccess 文件。一个在root 404 的根目录和一个在子目录的子目录也考虑重写条件,可能有一个条件你可以应用它类似于其他语言中的if-else。也许您可以执行类似 if root show this, else show that 的操作。我不确定,因为我不需要使用多个 404。

也可能是另一种选择,因为您使用 PHP 是通过 php 检测您是否在根目录中,或者您是否处于一个或多个级别。如果是这种情况,您 include()require() 无论您的选择是什么,您都希望为条件显示 404。但是,在全球范围内,它将是 htaccess 文件的一个 404 页面,它将拉入另外两个页面之一(或者如果您有需要,可以更多)。

【讨论】:

  • 如果我为子文件夹使用不同的htaccess 文件,那么我是否必须粘贴所有其他.htaccess 规则?或者如果我在新的htaccess 中添加ErrorDocument 404 并忽略所有其他规则。根文件夹中的其他规则是否适用于 404 以外的子文件夹?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-22
  • 2017-12-20
  • 1970-01-01
相关资源
最近更新 更多