RewriteRule в .htaccess: шаблон с начальным slash может никогда не совпасть
Фотография конкретного исполнения не приложена.
Правило, работающее в server config, может перестать срабатывать после переноса в .htaccess. Причина не обязательно в регулярном выражении. Per-directory rewrite получает другой вход: относящийся к каталогу prefix снимается перед сопоставлением.
Документация mod_rewrite объясняет, что оставшийся путь в этом контексте не начинается с slash. Поэтому шаблон с ^/ не совпадает так, как в server или virtualhost context. DocumentRoot, Alias и прежние substitutions влияют на текущее отображение, из которого получается эта относительная часть.
Если требуется полный URL-path, его рассматривают через подходящее условие REQUEST_URI. Host, port и query string также не становятся автоматически частью строки RewriteRule pattern. Для относительной подстановки важен обратный prefix и предусмотренные правила RewriteBase, а не механическое копирование старого примера.
В приёмке фиксируют контекст и ожидаемую строку сопоставления для нескольких вложенных URI. Проверяют относительную и абсолютную подстановку. Отдельно убеждаются, что .htaccess вообще применяется. Успешная проверка regex на полном URL во внешнем редакторе не доказывает совпадение с тем значением, которое передаёт rewrite engine.
Основание — Official Apache HTTP Server2.4 branch reference snapshot; exact installed patch not inferred, разделы Per-directory rewrites; prefix stripping; RewriteBase. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — снимок официальных руководств ветки Apache HTTP Server 2.4. Это обновляемая ветка, а не документация подтверждённого patch установленного сервера. Реальные модули, virtual hosts, файловые пути и правила доступа не проверялись; запросы к рабочему серверу и изменения не выполнялись.