Доброе утро, помогите понять как решить проблему (OC-v3 latest). Есть

мультисайт, домен пока 1, используется lang prefix /lv /en. Проблема в том что спамеры генерируют backlinks типа на 301 редирект и они забивают все проги аналитики seo.
Дело имхо в роутинге мультисайта.
Думаю если будет ответ чистым 404, проблема исчезнет. Но как подобраться или сделать костыль не приложу ума?

https://talk.octobercms.com/t/understanding-multisite-and-routing/2941

13 ответов

11 просмотров

А как по другому учитывая работу префиксов должно работать если проблема только в редиректах?

Max-Dubovsky Автор вопроса
Vladimir 
А как по другому учитывая работу префиксов должно ...

Ну, на сайте даже нет такой page, где url = "/redirect", поэтому нужно как то сразу 404 отвечать.

Max Dubovsky
Ну, на сайте даже нет такой page, где url = "/redi...

А как он должен это понимать, если это мультисайт? Для каждой страницы сканировать все сайты которых может быть множество на отсутствие страницы ? Тогда сайты все будете тормозить )

Max-Dubovsky Автор вопроса
Vladimir 
А как он должен это понимать, если это мультисайт?...

я думал что пройтись по всем Pages не так и дорого.

Max Dubovsky
я думал что пройтись по всем Pages не так и дорого...

На самом деле дорого. Учитывая их множество вариаций)) и учитывая, что если страницы не существует, придется сканировать все сайты

Max-Dubovsky Автор вопроса
Vladimir 
На самом деле дорого. Учитывая их множество вариац...

Но если тема одна, а языков много, то в performace разницы нет ? так

Типо если подкинуть такой урл к сайту то он делает 301 редирект?

Max-Dubovsky Автор вопроса
Sergey
Типо если подкинуть такой урл к сайту то он делает...

ну да. На самом деле если подкинуть любой урл без Lang Prefix он сначала делает 301, потом 404.

Sergey
Типо если подкинуть такой урл к сайту то он делает...

Так всегда было при Rainlab.Translate, но там можно было это гасить )

Max Dubovsky
Но если тема одна, а языков много, то в performace...

В целом, если сайт объединены в группу, то можно их просканировать по группе, а так же группировать по теме. Чтобы если несколько сайтов используют одну тему, повторно не сканировать. Что-то вроде: public function handle(\Illuminate\Http\Request $request, Closure $next) { $pageInSite = Site::listSites() ->isEnabled() ->first(function(SiteDefinition $site) use($request) { $theme = Theme::load($site->theme); $router = new Router(theme); $result = $router->findByUrl($request->url()); unset($theme, $router); return $result; }); return $pageInSite ? $next($request) : app(Controller::class)->run(404); } Если находим страницу - идем дальше в контроллер и работает магия октября. Если не находим, то вызываем логику контроллера 404. Это можно упаковать в middleware, например в NotFoundPageMiddleware и повесить на контроллер через Plugin.php или app/provider.php метод boot. Cms\Classes\CmsController::extend(function($controller) { $controller->middleware(NotFoundPageMiddleware::class); });

Max-Dubovsky Автор вопроса
Vladimir 
В целом, если сайт объединены в группу, то можно и...

Есть продвижение по этому. В целом, Владимир, Вам огромное спасибо, идея супер. У нас на проекте надеюсь что всё получится, так как мы получили больше контроля. Проект там содержит категории на разных языках типа url = /:categoryName - так что теперь в случае захода мы делаем запрос, проверяем на slug, 404 если нет и уже более грамотный 301 куда нужно. Твоя идея тоже сработает, но с некоторыми доработками, я думаю прежде всего нужно всё что с url prefix отправлять сразу на return $next($request); а всё что без - уже кастомно парсить. В нашем случае захадкодим языки что бы быстрее было. Сейчас разбираюсь что делать с Pages и url, но и тут всё более мение нормально, скорее всего можно будет делать 301 на такие вещи как http://domain/about -> /en/about http://domain/o-nas -> /ru/o-nas

Max Dubovsky
Есть продвижение по этому. В целом, Владимир, Вам...

Ну вариант был с телефона накидан, так что допускал в нем изъяны )) но в рад что даже это помогло :)

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта