每个网页的“.htaccess”和“.htpasswd”文件

时间:2013-09-07 13:08:16

标签: html .htaccess

我有一个索引页面,其中包含3个页面的链接(全部位于同一目录中): file1.html,file2.html,file3.html。

<html>
<body>
<ul>
    <li><a href="file1.htm">file1</a></li>
    <li><a href="file2.htm">file2</a></li>
    <li><a href="file3.htm">file3</a></li>
</ul>
</body>
</html>

我是“.htaccess”和“.htpasswd”的新手,我读过的所有教程都允许1到多个用户访问页面。在我的情况下,我想要相反。我想要1“.htaccess”文件和1“.htpasswd”文件将执行以下操作:

允许用户名:Bob传递:123以仅访问file1

允许用户名:Nick pass:123只能访问file2

允许用户名:Randy pass:123只能访问file3

其他人无法访问3页。

有人知道我该怎么办?

由于所有3个页面都是直接相同的,我不能为每个页面创建3个“.htaccess”,这让我很困惑。谢谢。

1 个答案:

答案 0 :(得分:0)

最简单的方法是将三个文件移动到三个不同的目录。所以你有:

<li><a href="file1/index.html">file1</a></li>
<li><a href="file2/index.html">file2</a></li>
<li><a href="file3/index.html">file3</a></li>

然后,您可以轻松地在这三个目录中的每个目录中创建单独的.htaccess.htpasswd

话虽如此,可以使用单个.htaccess文件对多个文件应用限制。

AuthUserFile /path/to/.htpasswd
AuthName "Example"
AuthType Basic

<Files "page1.html">
  require user bob
</Files>
<Files "page2.html">
  require user nick
</Files>
<Files "page3.html">
  require user randy
</Files>

请注意,您仍然拥有一个包含Bob,Nick和Randy凭据的.htpasswd个文件。 (即使有三个单独的目录,您仍然需要一个.htpasswd,因此您不会在整个地方追逐凭据。)但是那些<Files>块只允许某些用户访问这三个不同的文件。