Вы должны включить доменное имя в редирект.
Никогда не смешивайте директивы mod_alias и mod_rewrite в одном файле. Если вы используете RewriteRule
для любого из ваших правил, вы должны использовать RewriteRule
(не Redirect
или RedirectMatch
) для ВСЕХ ваших правил.
Перечислите все перенаправления (используя синтаксис RewriteRule
) перед любым переписыванием (используя синтаксис RewriteRule
), в противном случае вы непреднамеренно выставите перезаписанные указатели обратно в Интернете в качестве новых URL-адресов.
Код, который вы сейчас используете, очень неэффективен. Шаблоны .*
означают, что ваш файл .htaccess будет пытаться сотнями тысяч пробных совпадений «отменить и повторить» для каждого запроса URL, попадающего на сервер.
В частности,
^(.\*/)?
следует заменить на ^([^/]+/)\*
в двух местах.
^.\*/
следует заменить на ^/([^/]+/)\*
!.\*wp-content/plugins.\*
следует заменить на !wp-content/plugins
^([_0-9a-zA-Z-]+/)?(.\*\\.php)$
следует заменить на ^([_0-9A-Z-]+/)?([^.]+\\.php)$
с добавленным флагом [NC]
.
Перенаправление «добавить косую черту в / wp-admin» должно быть самым первым набором правил в файле, а целевой URL должен включать протокол и имя домена. Это правило должно быть немедленно соблюдено с правилом канонизации не из www в www.
Новый код может работать в сотни раз быстрее.