Ivan Shvindin

Ivan Shvindin

С нами с 25 апреля 2013; Место в рейтинге пользователей: #147
Василий Наумкин
23 марта 2015, 06:40
4
+1
Вот за что люблю SEO, так это за привычку утверждать без доказательств. Поэтому, сначала вопросы.

1. Я не смог найти способ проверить наличие дублей, вообще. Все статьи в интернете больше походят на набор бабушкиных сплетен «зайдите в гугл, поищите так, а потом на яндекс, поищите эдак — видите, у вас разные результаты, значит у вас там где-то дубли!».

2. Если на сайте есть страницы, которые Яндекс исключил из поиска, наверное — он должен где-то их показывать? Не вижу


3. Откуда вообще могут взяться дубли по url, если этих url нигде нет? Ссылки на сайте выводятся как надо, в sitemap.xml — тоже. Яндекс сам при индексировании будет убирать слэш у контейнеров, что ли?

Ну а теперь ответы.

Friendly urls — это команды движку открыть какую-то страницу не по номеру, а по имени. Имя отправляется на запрос в index.php и он уже думает, какую страницу отдать. Так что, Apache2 и Nginx здесь сразу не при чём, работать нужно с движком сайта.

Для примера я набросал простой плагин, который сравнивает запрошенный адрес с каноническим для страницы, и если они не совпадают — делает 301 редирект.
<?php
if ($modx->event->name != 'OnLoadWebDocument') {return;}

$uri = $modx->resource->get('uri');
$request = ltrim(urldecode($_SERVER['REQUEST_URI']), '/');
if (strpos($request, '?') !== false) {
	list($request, $params) = explode('?', $request);
}
else {
	$params = '';
}

if (!empty($request) && mb_strtolower($request, 'UTF-8') != mb_strtolower($uri, 'UTF-8')) {
	if (!empty($params)) {
		$uri .= '?' . $params;
	}
	$modx->sendRedirect($uri, array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
}
Конечно, его нужно внимательно тестировать, но общее направление работ понятно.
Виктор
18 марта 2015, 23:30
1
0
А вот моё решение:

<button class="btn" type="submit" name="ms2_action" value="cart/add" onclick="miniShop2.Callbacks.Cart.add.response.success = function() {document.location = '/cart.html';}">купить</button>

хз, выйдет ли оно мне боком, но пока работает! Никаких правок в скриптах, плагинах и функционал кнопки «добавить в корзину» не слетает!
Андрей
09 октября 2014, 12:19
1
0
Было частично найдено решение, в файле "/manager/assets/modext/sections/login.js" есть if
if (top.frames.length !== 0) {
        top.location=self.document.location;     
    }
Так вот в опере «top.frames.length» всегда 1, во всех остальных браузерах 0
Василий Наумкин
30 мая 2014, 07:45
1
+2
Создай системный параметр ms2_cart_max_count и задай другое максимальное число.