Как разрешить /.well-known/security.txt в htaccess

Я хочу внести этот файл в белый список только в каталоге .well-known.

Мой файл htaccess

Options -Indexes
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public 
RewriteRule ^(.*)$ public/$1 [L]

<IfModule mod_rewrite.c>
  RewriteCond %{SCRIPT_FILENAME} -d [OR]
  RewriteCond %{SCRIPT_FILENAME} -f
  RewriteRule "(^|/)\." - [F]
</IfModule>

мои попытки

<Files .well-known/security.txt>
Allow from all
Satisfy Any
</Files>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^(public|.well-known/security.txt)
RewriteRule ^(.*)$ public/$1 [L]

Заключение ! Я просто хочу внести файл security.txt в белый список только в .well-known каталоге

Не могли бы вы указать, с какого URL-адреса вы хотите перенаправить ИЛИ переписать ИЛИ что-нибудь еще? Пожалуйста, обновите свой вопрос с той же информацией, спасибо.

RavinderSingh13 27.10.2022 16:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
1
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
RewriteCond %{REQUEST_URI} !^public 
RewriteRule ^(.*)$ public/$1 [L]

Это условие ошибочно, так как серверная переменная REQUEST_URI всегда начинается с косой черты, поэтому выражение !^public всегда успешно.

(Из этого я предполагаю, что у вас должен быть еще один файл .htaccess в подкаталоге /public, иначе вы получите цикл перезаписи.)

Как только вы это поймете, вы сможете изменить правило так, как вы пытались. Например:

RewriteCond %{REQUEST_URI} !^/(public|\.well-known/security\.txt$)
RewriteRule ^(.*)$ public/$1 [L]

ОДНАКО другое ваше правило блокирует все запросы к физическим файлам/каталогам, которые начинаются с точки, поэтому запрос все равно будет заблокирован (со статусом 403 Forbidden). Это правило также не подходит для других запросов (оно должно быть до перезаписи в подкаталог /public).

Вместо этого вам лучше сделать исключение в виде отдельного правила в начале файла. Например, вместо этого попробуйте следующее:

Options -Indexes

RewriteEngine on

# Prevent further processing for special files
RewriteRule ^\.well-known/security\.txt$ - [L]

# Block access to all dot-files
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule (^|/)\. - [F]

# Rewrite request to "/public" subdirectory
RewriteCond %{REQUEST_URI} !^/public
RewriteRule (.*) public/$1 [L]

Обертка <IfModule> в этом единственном правиле была лишней.

@Joukhar, хорошо, что это решение сработало для вас, в качестве напоминания (на случай, если вы забыли), вы также можете голосовать за ответы, голосование за отличается от принятия ответа, ура и продолжайте публиковать хорошие вопросы и ответы на этот отличный сайт.

RavinderSingh13 28.10.2022 01:45

Другие вопросы по теме