解决scheme:我必须把允许/拒绝指令放在第一个目录指令(这也恰好是根目录)。 我猜这是因为它有一个AllowOverride None,不允许任何孩子指定允许/拒绝?
<Directory />
选项FollowSymLinks
AllowOverride无
订单允许,否认
全部允许
拒绝从xxx.xx.xxx.xx
</目录>
原版的:
这个configuration仍然允许在apache重新启动后访问所有的IP
<VirtualHost *:80> ServerName www.xxx.com DocumentRoot /var/www/vhosts/xxx <Directory /var/www/vhosts/xxx> Options Indexes FollowSymLinks AllowOverride none Order deny,allow Deny from all Allow from 127.0.0.1 </Directory> </VirtualHost>
这应该工作。 我只是在我的服务器上validation你的代码,以确保我不是疯了。 你确定在这个优先之前没有定义吗?
在服务器的文件夹中创build一个testing文件。 像test.txt。 您可能会发现,当您在浏览器中加载该url时,您看不到它。 如果是这样的话,那么上面的定义就会被跳过。
对于你想要做的,也就是只允许127.0.0.1,你应该这样做:
Order Allow,Deny Allow from 127.0.0.1
先说, allow事情,然后deny事情, deny不符合的事情。
你也不应该把你的<Directory>块放在你的<VirtualHost> ,而是放在它之前。
这是一个Plesk系统吗? 有时你必须观察如何编译各种http包含。 在稍后的包含文件中,您可能会有一些内容超出了您的第一条语句。
谢谢。 这个代码的作品。
NameVirtualHost 127.0.0.1
NameVirtualHost 192.168.44.141
<VirtualHost 127.0.0.1 192.168.44.141> #ServerName localhost.com ServerName www.localhost.com DocumentRoot "E:/abcd" <Directory "E:/abcd/files"> Options Indexes FollowSymLinks AllowOverride none Order allow,deny Allow from 192.168.44.128 Deny from all </Directory> </VirtualHost>