9

我的问题是我想拒绝对文件夹的访问,但我不能。我.htaccess在这个文件夹中放了一个文件,只有这些行:

order deny,allow
deny from all

知道会发生什么吗?

4

4 回答 4

16

我得到它!这是由于apache配置。在我foo.conf的站点可用目录中,我有:

AllowOverride None

正如 apache doc 所说,AllowOverride 描述:.htaccess 文件中允许的指令类型

当它更改为:

AllowOverride All

它完美无缺!您还可以使用特定选项对其进行配置:

AllowOverride directive-type

指令选项位于:apache.org

于 2013-08-11T19:21:40.893 回答
3

我使用这种方法遇到了同样的问题。试试这个:

RewriteEngine On
RewriteCond %{REQUEST_URI} foldername
RewriteCond %{REMOTE_ADDR} !^111\.222\.333\.44$
RewriteRule . - [R=404,L]

使用此方法,您需要添加自己的 ip。

选项:而不是最后一行是未找到的 404 页面:

RewriteRule . - [R=404,L]

您可以将其更改为 403 禁止:

RewriteRule .*? - [F]

或重定向到您的主页:

RewriteRule . http://www.domain.com/ [R,L]
于 2013-08-10T13:00:30.013 回答
1

您需要做两件事,首先,更改 apache 的 conf 以允许覆盖,其次,更改主机的 conf 以允许覆盖

第一的

nano /etc/apache2/apache2.conf

<Directory /var/www/html/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

并将其更改为;

<Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

第二

   cd /etc/apache2/sites-available
   nano  yourdomain.com.conf 

在其中添加以下代码,

<Directory "/var/www/html/yourdomain.com/public_html">
     AllowOverride All 
     Require all granted 
</Directory>

添加后

<VirtualHost *:80>
     ServerAdmin support@yourdomain.com
     ServerName yourdomain.com
     ServerAlias www.yourdomain.com
     DocumentRoot /var/www/html/yourdomain.com/public_html/

   <Directory "/var/www/html/yourdomain.com/public_html">
       AllowOverride All
       Require all granted
   </Directory>

于 2016-09-28T09:19:26.070 回答
0

用这个:

<Directory /folder_name>
Order Deny,Allow
Deny from all
</Directory> 

最好添加一条规则以允许您的 IP 地址。您可以为此使用your_ip_address中的允许。请注意 IP 地址,因为它可以共享。您可以使用http://www.whatismyip.com/检查您的 IP 地址

于 2013-08-10T12:20:48.710 回答