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

Каретка в круглых скобках в RewriteRule

Что это значит:

RewriteRule "(^|/)\." - [F]

Я знаю, что флаг F означает выдачу запрещенной ошибки 403. И я знаю, что экранированная точка означает, что каталоги, начинающиеся с точки, запрещены. Но что означают вставка, вертикальная черта и косая черта в скобках? В чем будет разница между приведенным выше утверждением и этим:

RewriteRule "\." - [F]

Что, если бы я хотел пометить URL-адреса как запрещенные, если они начинаются с точки, но с исключением для этого каталога:

.well-known

Обновить: Похоже, я могу удовлетворить последнее требование с помощью ...

RewriteRule "(^|/)\.(?!well-known)" - [F]

Мне все еще интересно, что означают вставка, вертикальная черта и косая черта в скобках.

^ и $ - специальные символы, которые представляют начало и конец строк (или строк)

в | является OR условное обозначение

(^|/)\. расширяется до ^. или /. (без косой черты для ясности)

^. = любая строка, имеющая . как первый персонаж

/. = любая строка с /.