Назад | Перейти на главную страницу

Apache2 предоставляет доступ к определенным местам (файл .htaccess)

Может ли кто-нибудь помочь мне с созданием файла .htaccess или как я могу ограничить доступ к определенным местам.

Все мои файлы, доступные пользователю, находятся в /var/www/website однако у меня также есть еще несколько папок, например /var/www/website/secrets, var/www/website/tools что я хочу, чтобы они были недоступны из веб-браузера.

Моя основная проблема в том, что у меня есть cronjobs, выполняющие скрипты php из var/www/website/tools и я также не хочу отказывать им в доступе.

Чтобы заблокировать любой веб-доступ к этим каталогам, в каждом из них просто поместите файл .htaccess со следующей строкой:

  • Apache 2.4.x:

    Require all denied
    
  • Apache 2.2.x:

    Order deny,allow
    Deny from all
    

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

<Directory "/var/www/website/secrets">
    ...whichever entry from above here....
</Directory>

Кроме того, до тех пор, пока ваши кроны вызывают сценарии напрямую (с двоичным кодом PHP) и не делают глупых вещей, таких как curl или wget, возвращаются к себе, тогда эти записи .htaccess не будут иметь никакого влияния на них, поскольку они влияют только на веб- основанный на трафике (вещи, проходящие через Apache).

Я также рекомендовал бы прочитать документацию Apache по этому вопросу - она ​​действительно очень информативна и полезна: