2013-08-10 3 views
3

моя проблема в том, что я хочу запретить доступ к папке, но я не могу. я поместил .htaccess файл в этой папке только с этими линиями:.htaccess запрет от всех не работает

order deny,allow 
deny from all 

Любая идея о том, что может происходить?

ответ

8

Я понял! Это произошло из-за конфигурации apache. В моем foo.conf каталога сайтов-avaiables я имел:

AllowOverride None 

Как говорит апач документ, AllowOverride Описание: Типы директив, которые разрешены в файлах .htaccess

Когда изменяется на:

AllowOverride All 

он отлично работает! Вы также можете настроить его с определенными параметрами:

AllowOverride directive-type 

директивные-опции на: apache.org

0

Используйте это:

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

лучше, чтобы добавить правило, чтобы ваш IP-адрес. Вы можете использовать , чтобы получить от your_ip_address. Будьте осторожны с IP-адресом, поскольку он может быть общим. Вы можете проверить свой IP-адрес, используя http://www.whatismyip.com/

+0

This ни работы. Я думаю, что файл .htaccess не работает. У меня есть следующий код в веб-каталоге и не работает в режиме разработки (режим перезаписи включен): RewriteEngine On RewriteCond% {REQUEST_FILENAME}! -f RewriteRule^(. *) $/app_dev.php [QSA, L] Manolo

+0

- это файл .htaccess, расположенный в корневом каталоге? Если нет, переместите его в корневой каталог и проверьте. – Debashis

+0

Да, это в веб-каталоге, где я настроил apache для перенаправления, когда я поместил «itransformer» в URL-адрес. Затем веб-папка открывается в браузере, но не перенаправляется на файл app_dev.php. И другой файл .htaccess (deny from all) находится в другом каталоге, который я хочу отрицать. – Manolo

2

У меня была такая же проблема, используя этот метод. Попробуйте это вместо:

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] 
+0

Ничего не работает. Я думаю, что есть проблема с чтением .htaccess или чем-то вроде этого, потому что нет .htaccess. Я забыл сказать, что я работаю над своим локальным хостом (возможно, это важно). Он работает прямо на сервере (http://itransformer.es) – Manolo

0

вам нужно сделать две вещи, во-первых, изменить конф Апача, чтобы переопределить, во-вторых, для изменения конф хостинга, чтобы переопределить

первый

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> 

Второй

кд/и т.д./apache2/сайты-доступные нано yourdomain.com.Conf

добавить следующие коды в него,

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

после добавления

<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> 

Смежные вопросы