使用.htaccess限制对所有文件夹的访问,但只能访问本地ips

时间:2015-04-02 10:32:54

标签: apache .htaccess web

我刚刚设置了一个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>

我需要改变什么来达到我想要的结果?提前谢谢。

2 个答案:

答案 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>标记内:

000-default.conf

<Directory /var/www/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride Limit
      Order deny,allow
      deny from all
      allow from 192.168.0.
</Directory>

pepephone.conf

<Directory /var/www/pepephone/>
      Options Indexes FollowSymLinks MultiViews
      Order allow,deny
      allow from all
</Directory>