Документация RewriteRule
объясняет, к какому разделу URL-адреса запроса применяется шаблон правил: раздел относительного пути в случае, если вы используете правило в контексте файла динамической конфигурации (которыйты сделаешь).
A Относительный путь означает: без косой черты (/
), это будет абсолютный путь.Это имеет абсолютный смысл, когда вы начинаете думать о логике таких динамических файлов конфигурации.
Таким образом, вы можете удалить начальную косую черту из шаблона, но я считаю, что лучше сделать его необязательным.Таким образом, ваше правило будет работать независимо от того, где оно применяется, в файле динамической конфигурации или в реальной конфигурации хоста:
RewriteEngine On
RewriteCond %{HTTP_HOST} (^|\.)primary\.com$
RewriteRule ^/?(addon1\.com|addon2\.com)(/|$) http://primary.com/ [R=301]
И общее замечание: вы всегда должны предпочитать размещать такие правилав конфигурации хоста http-серверов вместо использования динамических файлов конфигурации («.htaccess»).Эти динамические конфигурационные файлы добавляют сложность, часто являются причиной неожиданного поведения, трудно поддаются отладке, они действительно замедляют работу http-сервера, часто даром, и могут открыть пути к кошмарам безопасности.Они предназначены только для ситуаций, когда у вас нет доступа к реальной конфигурации хоста http-серверов (читай: действительно дешевые поставщики услуг).