.htaccess否认一切都行不通

时间:2013-08-10 12:14:13

标签: apache .htaccess

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

order deny,allow
deny from all

知道会发生什么事吗?

4 个答案:

答案 0 :(得分:15)

我懂了!这是由于apache配置。在我的foo.conf sites-avaiables目录中,我有:

AllowOverride None

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

当它改为:

AllowOverride All

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

AllowOverride directive-type

指令选项:apache.org

答案 1 :(得分: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]

答案 2 :(得分:1)

你需要做两件事,首先,改变apache的conf以允许覆盖, 第二,改变托管的conf以允许覆盖

<强>第一

@Service
public class BlogEntryServiceImpl implements BlogEntryService {
    public BlogEntry find(Long id) {
        //Do your stuff here
    }
    public BlogEntry delete(Long id) {
        //Do your stuff here
    }
    public BlogEntry update(Long id, BlogEntry data) {
        //Do your stuff here
    }
}

并将其更改为;

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>

答案 3 :(得分:0)

使用此:

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

最好添加规则以允许您的IP地址。您可以使用允许from_ip_address 进行此操作。小心ip地址,因为它可以共享。您可以使用http://www.whatismyip.com/

检查您的IP地址