У меня есть плагин для 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>