.htaccess密码保护,具有可见性

时间:2014-02-15 01:18:14

标签: php apache .htaccess

我有目录结构

folder
  ↳file1(public access)
  ↳file2(require password)

当我把以下内容放在.htaccess中时:

AuthType Basic
AuthName "asdf"
AuthUserFile path/to/.htpasswd
<Files file2>
  require user asdf
</Files>

未登录的视图显示了此结构:

folder
  ↳file1(public access)

如何向file2提供未登录的用户可见性,以便他们知道该文件实际存在,但可能必须登录?

2 个答案:

答案 0 :(得分:1)

在这个简单的例子中,我相信你可以使用IndexOptions ShowForbidden

如果你变得更复杂(比如一个身份验证覆盖的目录,或者你想显示一些禁止但隐藏其余的目录),你将不得不求助于其他方法(例如,生成你自己的索引然后显示它,就像在@中一样) Fred-ii-回答)。

答案 1 :(得分:1)

除了已经给出的答案(一个不错的选项),您可以将其放在.htaccess文件中

ErrorDocument 401 error401.htm

并创建一个名为error401.htm的页面,其中包含您想要的任何内容。

那,位于服务器的根目录中。

使用类似:

ErrorDocument 401 /folder/error401.htm

如果放在不同的文件夹中。

也可能是403,具体取决于您的设置方式。

ErrorDocument的完整列表是:

  1. 400 - 错误请求
  2. 401 - 需要授权
  3. 403 - 禁止目录
  4. 404 - 找不到页面
  5. 500 - 内部服务器错误
  6. 当然,您可以使用.php作为首选文件扩展名,而我更倾向于使用适用于403的{​​{1}}

    <强>脚注:

    在某些情况下,您可能需要使用完整的Forbidden directory来电:

    http://