Может ли кто-нибудь помочь мне с созданием файла .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 по этому вопросу - она действительно очень информативна и полезна: