我正在学习如何使用 htaccess。
首先,我想尝试如何为以下目录设置用户名和密码
~/public_html/55/m
:~/public_html/55/m$ ls -la total 24 drwxr-xr-x 2 tim Domain^Users 4096 2011-12-16 21:39 . drwxr-xr-x 3 tim Domain^Users 4096 2011-12-16 21:42 .. -rwxr-xr-x 1 tim Domain^Users 271 2011-12-16 21:26 .htaccess -rwxr-xr-x 1 tim Domain^Users 8 2011-12-16 21:39 .htpasswd -rwxr-xr-x 1 tim Domain^Users 884 2011-12-16 20:02 index.html
我手动创建了两个文本文件:
.htaccess
和.htpasswd
。它们的内容是~/public_html/55/m$ cat .htaccess AuthUserFile /home/WIN/local/WIN/tim/public_html/55/m/.htpasswd AuthGroupFile /dev/null AuthName EnterPassword AuthType Basic Require valid-user ~/public_html/55/m$ cat .htpasswd tim:123
但我无需输入用户名和密码就可以访问网页。不知道为什么?
其次我想尝试如何限制访问的ip范围
~/public_html/55/n
~/public_html/55/n$ ls -la total 16 drwxr-xr-x 2 tim Domain^Users 4096 2011-12-16 21:54 . drwxr-xr-x 4 tim Domain^Users 4096 2011-12-16 21:53 .. -rwxr-xr-x 1 tim Domain^Users 292 2011-12-16 21:53 .htaccess -rwxr-xr-x 1 tim Domain^Users 884 2011-12-16 21:53 index.html
我手动创建了一个文本文件,
.htaccess
其内容如下:~/public_html/55/n$ cat .htaccess AuthUserFile /dev/null AuthGroupFile /dev/null AuthName AllowFromBlah AuthType Basic <limit GET> order deny,allow deny from all allow from xxx.edu </Limit>
但我可以从指定 IP 范围之外访问网页
xxx.edu
。我想知道为什么?
感谢致敬!
答案1
AllowOverride
也许使用虚拟主机配置中的指令可以忽略这些目录的 .htaccess 文件。从http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride:
当此指令设置为 None 时,.htaccess 文件将被完全忽略。在这种情况下,服务器甚至不会尝试读取文件系统中的 .htaccess 文件。
编辑:Ubuntu 上的配置基于/etc/apache2
,其他系统的配置基于/etc/httpd
或其他目录。Ubuntu 用户主目录的配置由 处理,mods-available/userdir.conf
当链接到 时启用/etc/apache2/mods-enabled
。它将主目录指定为/home/*/public_html
。php4.conf
也引用相同的目录。