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

Запрет прямого доступа браузера к текстовым файлам плагина Wordpress

У меня есть плагин для Wordpress, custom-plugin, в котором есть несколько файлов .txt, которые помогают его настроить. Я хочу предотвратить прямой доступ браузера к этим файлам .txt.

Я никогда раньше не использовал htaccess, но я пытаюсь отредактировать корневой файл .htaccess и добавить следующие строки:

# BEGIN custom-plugin
# Block web browser access to .txt files.
RedirectMatch .*/custom-plugin/.*\.txt$ http://MyWebsite.com
# END custom-plugin

Увы, это не работает, я все еще могу получить прямой доступ https://www.MyWebsite.com/wp-content/plugins/custom-plugin/plugin_settings.txt

Я неправильно делаю htaccess?

Все, что я хочу сделать, это запретить доступ к этим файлам. Является ли RedirectMatch неправильным выбором?

ПРИМЕЧАНИЕ. Это корневой файл htaccess (находится по адресу public_html/.htaccess).

Непонятно, почему ваше перенаправление не работает (если у вас уже есть другие директивы в вашем .htaccess файл, которые работают). Может у вас конфликт с другими директивами.

Однако, если вы хотите заблокировать доступ к этим .txt файлов, то вы не хотите перенаправлять запрос, поэтому RedirectMatch не подходит для работы.

Просто заблокируйте доступ ко всем .txt файлы:

<Files "*.txt">
Require all denied
</Files>

Это вернет 403 Forbidden for все HTTP-запросы для .txt файлы. Предполагая, что вам не нужно указывать конкретный «настраиваемый плагин». Также предполагает Apache 2.4+

В стороне: Эти .txt/ config действительно необходимы для дальнейшего использования плагинов, а не только для установки ?!

ОБНОВИТЬ: Я просто хочу заблокировать их в папке моего собственного плагина

Если вы не хотите создавать дополнительные .htaccess файл в каталоге плагинов (будет иметь дополнительный бонус в том, что его можно просто распространять с плагином), тогда вы можете использовать директиву mod_rewrite в корне .htaccess файл.

Следующее должно быть в верхней части вашего .htaccess файл, перед любые существующие директивы WordPress mod_rewrite:

RewriteRule ^wp-content/plugins/custom-plugin/.+\.txt$ - [F]

Или, если вы хотите быть немного более гибким в отношении структуры каталогов:

RewriteRule /custom-plugin/.+\.txt$ - [F]

Вышеупомянутое также возвращает 403 Forbidden для любого запроса, который соответствует RewriteRule шаблон. В L флаг не требуется, когда F флаг используется. В строка замены состоит из одного дефиса (-), указывая без замены.

В качестве альтернативы в Apache 2.4+ вы можете использовать выражение Apache:

<If "%{REQUEST_URI} =~ m#/custom-plugin/.+\.txt$#">
Require all denied
</If>