Manolo
Manolo

Reputation: 26440

.htaccess deny from all doesn't work

my problem is that I want to deny the access to a folder but I can't. I've put a .htaccess file in this folder with just these lines:

order deny,allow
deny from all

Any idea of what can be happening?

Upvotes: 10

Views: 33194

Answers (4)

bestshop24h
bestshop24h

Reputation: 121

you need to do two things,first, change the conf of apache to allow override, second, to change the conf of a hosting to allow override

first

nano /etc/apache2/apache2.conf

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

and change it to;

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

Second

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

add the following codes into it,

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

after adding

<VirtualHost *:80>
     ServerAdmin [email protected]
     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>

Upvotes: 1

Manolo
Manolo

Reputation: 26440

I get it! It was due to the apache configuration. In my foo.conf of sites-avaiables directory I had:

AllowOverride None

As apache doc says, AllowOverride Description: Types of directives that are allowed in .htaccess files

When it is changed to:

AllowOverride All

it works perfectly! You can also configure it with specific options:

AllowOverride directive-type

directive-options at: apache.org

Upvotes: 18

cknz
cknz

Reputation: 57

I had the same issue using that method. Try this instead:

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

With this method you need to add your own ip.

Options: instead of the last line being a 404 page not found:

RewriteRule . - [R=404,L]

you can change it to a 403 forbidden:

RewriteRule .*? - [F]

or redirect to your homepage:

RewriteRule . http://www.domain.com/ [R,L]

Upvotes: 3

Debashis
Debashis

Reputation: 596

Use this:

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

Its better to add a rule to allow your ip address. You can use allow from your_ip_address for this. Be careful with the ip address as it can be shared. You can check your ip address using http://www.whatismyip.com/

Upvotes: 0

Related Questions