Вы можете использовать флаг RewriteRule S|skip
для привязки кратных RewriteRules к одному RewriteCond (или к набору RewriteConds). Вот пример, который применяет один Cond к трем Правилам:
RewriteCond %{HTTP_HOST} !^www.mydomain.com$
# skip rules if NOT within domain - only way to tie multiple rules to one cond
RewriteRule .? - [S=3]
RewriteRule ^path1(/.*)$ /otherpath1$1
RewriteRule ^path2(/.*)$ /otherpath2$1
RewriteRule ^path3(/.*)$ /otherpath3$1
Чтобы изменить существующий Cond для работы с несколькими правилами, вам необходимо:
- Отрицание условия (добавьте его!)
- Если у вас есть несколько RewriteConds:
Измените логические AND в Conds на OR и наоборот.
- Добавьте правило перезаписи пропуска перед всеми правилами, которые вы хотите связать с условием (ями). Установите для параметра S количество пропущенных строк правила.
Обратите внимание, что невозможно использовать какие-либо обратные ссылки, которые указывают на RewriteCond (например,% 1) в пропущенных Правилах. Они доступны только в пропускающем RewriteRule.