我刚刚设置了一个Web服务器,但我在配置我的.htaccess时遇到了一些麻烦,无法应用我想要的限制。
基本上,我希望/ var / www上的所有内容都限制在本地ips中,但是应该公开访问一个文件夹。这是我目前在我的.htaccess(位于/var/www/.htaccess)中所看到的,它似乎正在做相反的事情:
//Deny access to all directorys but 'pepephone'
<Directory /var/www>
Order deny,allow
deny from all
allow from 192.168.0.
<Directory /var/www/pepephone>
Order allow,deny
allow from all
<Directory>
<Directory>
我需要改变什么来达到我想要的结果?提前谢谢。
答案 0 :(得分:1)
来自:http://httpd.apache.org/docs/2.4/en/mod/core.html#directory
<Directory\> directives cannot nest, and cannot appear in a <Limit> or <LimitExcept> section.
您应该使用:
//Deny access to all directorys but 'pepephone'
<Directory /var/www>
Order deny,allow
deny from all
allow from 192.168.0.
<Directory>
<Directory /var/www/pepephone>
Order allow,deny
allow from all
<Directory>
答案 1 :(得分:0)
找到答案。
首先,正如@nlu发布的那样,您无法嵌套目录标记。第二,.htaccess
文件中不允许使用Directory标记,因此我必须直接在apache .conf
文件上执行此操作。
这就是它最终看起来的样子(两个文件都在/etc/apache2/sites-enabled/
文件夹中,由apache2.conf
包含。注意,这些指令都在<VirtualHost>
标记内:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride Limit
Order deny,allow
deny from all
allow from 192.168.0.
</Directory>
<Directory /var/www/pepephone/>
Options Indexes FollowSymLinks MultiViews
Order allow,deny
allow from all
</Directory>