我正在学习如何使用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
我手动创build了两个文本文件: .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
在那里我手动创build的文本文件.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以外访问网页。 我想知道为什么?
感谢致敬!
在虚拟主机configuration中使用AllowOverride指令可能会忽略这些目录的.htaccess文件。 从http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride :
当这个指令设置为None时,那么.htaccess文件将被完全忽略。 在这种情况下,服务器甚至不会尝试读取文件系统中的.htaccess文件。
编辑:在Ubuntuconfiguration基于/etc/apache2 ,其他系统有其基于/etc/httpd或其他目录的configuration。 用户主目录的Ubuntuconfiguration由mods-available/userdir.conf处理,当链接到/etc/apache2/mods-enabled 。 它将主目录指定为/home/*/public_html 。 php4.conf也引用相同的目录。