Мой старый веб-сайт был создан с помощью handcoding HTML и имеет структуру каталогов:
public_html
.htaccess
index.html
...
content_folder
docs_folder
.htaccess
doc1.html
doc2.html
doc3.html
...
Мой новый веб-сайт создан с использованием CMS, который хранит свои веб-страницы в базе данных, и поэтому нет традиционной структуры каталогов веб-сайтов, подобной приведенной выше.
public_html/docs_folder/.htaccess
содержит следующие правила:
# Only permit access from links coming from my website (e.g.http://www.mydomain.com).
SetEnvIf Referer http://www.mydomain.com internal
<Files *>
order Deny,Allow
Deny from all
Allow from env=internal
</Files>
Поскольку на новом веб-сайте нет структуры каталогов, мне интересно, могу ли я включить правила public_html/docs_folder/.htaccess
выше, которые применимы только к веб-страницам в каталоге docs_folder
(и веб-страницах в любых подкаталогах) внутри public_html/.htaccess
.
Есть ли атрибут <location>
или другие средства для включения правила в файл .htaccess
но если он применяется к подкаталогу, а не к текущему каталогу, в котором находится файл .htaccess
?
Может ли кто-нибудь привести пример, используя правило выше?
Кроме того, используется ли <Files *>
для всех файлов (.html,.pdf,.css и т.д.)? Я так надеюсь.
Попробуйте добавить это в файл htaccess в корневой каталог:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://yourdomain\.com [NC]
RewriteRule ^docs_folder/ - [L,F]
Вам нужно будет удалить файл htaccess в папке /docs_folder/
public_html/docs_folder
кроме ссылок, исходящих с моего сайта. Не уверен, как это помогает. Существует гораздо больше каталогов, чем показано выше (это только пример).