Вместо дублирования верхнего и нижнего регистра надо использовать модификатор "i".
Символ "i" есть как в $OnlyEn, так и в $Eng.
Зачем русские символы менять на английский с похожим написанием? И наоборот.
Не учитывается, что в предложении могут быть знаки препинания.
Поиск частичного вхождения не имеет никакого отношения ни к русскому, ни к английскому языкам. Например, этот алгоритм считает слова "пар", "парк", Париж", "парикмахерская" и пр. - одним и тем же словом.
Если уж решается задача поиска вхождения, то не надо изобретать велосипед с квадратными колесами. Проще отрезать окончание и вызвать готовую функцию ru2.php.net/manual/en/function.mb-stristr.php
Если https-запрос уже пришел на сервер, то сервер должен иметь валидный сертификат, иначе в браузере будет выведено предупреждение о невалидном сертификате.
Вариант 1: забить на невалидность сертификата, все равно отдавать 403.
Вариант 2: получить wildcard-сертификат *.site2.ru
Вариант 3: в NS-записях домена явно прописать все поддомены. На несуществующий поддомен браузер даже не будет отправлять запрос.
Возможно, $this->session->data - это не массив, а magic-функция get. Соответственно, необходимо написать magic-функцию set или записывать данные по-другому.