metrpro 42 Жалоба Опубликовано: May 10, 2016 Воспользовавшись удобнейшим инструментом Google по поиску повторяющихся заголовков (тег title), я обнаружил следующую беду: - некоторые новости дублируются по двум адресам - один это news/ЧПУ, второй - news/newsID.html - некоторые объявления влетают в индекс почему-то тоже двумя способами - без слэша в конце и с ним - чтобы исключить возникновения дублей страниц поиска и объявлений необходимо добавление номера страницы в title (типовой способ в Настройках почему-то не работает) и - обязательно - добавление id объявления в title Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
DoobBY 9 Жалоба Опубликовано: May 12, 2016 Подскажите, у меня тоже вопросик по дублям, очень странное твориться =) Один и тот же объект влез в 2-е категории, при чём 2-й у меня нет (нет таких урлов, должна была вылезти 404, но нет), даже айдишки одинаковые. Ещё дело в том, что у меня нет такой вложенности - http://doob.by/kupit-kvartiry/komnati/ http://prntscr.com/b33tf1 (* нет такой вложенности) http://doob.by/arenda-kvartir/komnati/realty130 http://doob.by/kupit-kvartiry/komnati/realty130 Ещё проблема, в том, что создаются страницы со слешем и без, одинаковые (уже штук 300) http://prntscr.com/b33u64 Подскажите, как быть, как исправить? Заранее спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: May 13, 2016 Цитата - некоторые новости дублируются по двум адресам - один это news/ЧПУ, второй - news/newsID.html учтено. вам я сразу добавил редирект. на версии 1.4.25 модуля Новости он будет уже штатным. Цитата некоторые объявления влетают в индекс почему-то тоже двумя способами - без слэша в конце и с ним Цитата Ещё проблема, в том, что создаются страницы со слешем и без, одинаковые (уже штук 300) Тут решение состоит из двух частей. 1 - определиться со схемой адреса - будете ли вы предпочитать адреса со слешем на конце или без слеша. и тогда уже второе - путем прописывания правил для htaccess делать редирект с "неправильных адресов" на "правильные". Цитата чтобы исключить возникновения дублей страниц поиска и объявлений необходимо добавление номера страницы в title (типовой способ в Настройках почему-то не работает) Вы включили указание куда ставить название номера страницы. Но не включили сам вывод номеров страницы "Добавлять к заголовку страницы номер текущей страницы". Цитата Один и тот же объект влез в 2-е категории, при чём 2-й у меня нет (нет таких урлов, должна была вылезти 404, но нет) Это я кажется знаю откуда ноги растут. У меня уже лежит обновка под то дело. Нужно только проверить еще на себе будет. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: May 14, 2016 10 часов назад, abushyk сказал: Тут решение состоит из двух частей. 1 - определиться со схемой адреса - будете ли вы предпочитать адреса со слешем на конце или без слеша. и тогда уже второе - путем прописывания правил для htaccess делать редирект с "неправильных адресов" на "правильные". Дело не в htaccess (позвольте не согласиться). Дело в том, что в sitemap передаются ссылки на объявления без слэша, а на самом сайте они все со слэшем. Если не загонять вручную страницы через "посмотреть как google-бот" - что приводит к индексации со слэшем - то и конфликта не возникает. 10 часов назад, abushyk сказал: Вы включили указание куда ставить название номера страницы. Но не включили сам вывод номеров страницы "Добавлять к заголовку страницы номер текущей страницы". Я включал. Результата не увидел и выключил. Думал, мне кто переменную подскажет, я бы её через header.tpl включил Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: May 14, 2016 7 часов назад, metrpro сказал: Дело не в htaccess Как работает движек. Он получает некоторый линк, чистит его от фрагменто, анкоров, параметров и получает литеральную строку. Например /somelink/. После этого он отстригает лидирующие и финальные слеши /somelink/ ---> somelink /somelink/aaaa/ ---> somelink/aaa Т.е. с его точки зрения адрес site.ru/somelink/aaaa/ и site.ru/somelink/aaaa эквивалентны. Что принципе правильно, поскольку финальные слеши несут исключительно субъективную информацию и сами по себе не означают ровным счетом ничего. Вне зависимости от того, что у вас выдает сайтмап, со слешем или без, нужно принимать решение какой урл правильный. Делается это либо через хацесс, либо внутри кода, где проводится анализ того какой урл пришел, был ли у него слеш и какой урл допустим. В результате происходит либо отработка, либо 301 редирект на "правильную" ссылку. Обработка в коде обычно более громоздка, поскольку требует сохранения и проверки множества каких-то правил. Тогда как хтацесс делает то же самое, но чуть ранее. Так же следует помнить, что не смотря на то какие урлы выдает сайтмап, могут стоять ссылки с других сайтов, которые могут быть не такими как в сайтмапе, без слеша например. иными словами обработчик-анализатор должен быть в любом случае. Этот случай аналогичен борьбе с www субдоменом. Он точно так же редиректится с хтацесса. И совершенно не играет роли то, что в сайтмапе у вас никогда не будет ссылок с www - они просто есть и все. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
DoobBY 9 Жалоба Опубликовано: May 18, 2016 В 13.05.2016 в 21:04, abushyk сказал: Цитата Ещё проблема, в том, что создаются страницы со слешем и без, одинаковые (уже штук 300) Тут решение состоит из двух частей. 1 - определиться со схемой адреса - будете ли вы предпочитать адреса со слешем на конце или без слеша. и тогда уже второе - путем прописывания правил для htaccess делать редирект с "неправильных адресов" на "правильные". Просто прописать такое правило? RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} (.*) RewriteCond %{REQUEST_URI} /$ [NC] RewriteRule ^(.*)(/)$ $1 [L,R=301] В 13.05.2016 в 21:04, abushyk сказал: Цитата Один и тот же объект влез в 2-е категории, при чём 2-й у меня нет (нет таких урлов, должна была вылезти 404, но нет) Это я кажется знаю откуда ноги растут. У меня уже лежит обновка под то дело. Нужно только проверить еще на себе будет. А можно будет получить его отдельно? Или покупать полный пакет обновлений? *у меня закончился период Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: May 19, 2016 В 12.05.2016 в 22:04, abushyk сказал: Вы включили указание куда ставить название номера страницы. Но не включили сам вывод номеров страницы "Добавлять к заголовку страницы номер текущей страницы". Блин, Константин, это хреновина включает номер страницы в теле страницы под тегом h2 А мне надо в метатитле - и не так официально, как СТРАНИЦА 2, а как-то проще, типа стр. 2 Какая это переменная, я её сам воткну Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: May 27, 2016 В 18.05.2016 в 15:15, DoobBY сказал: А можно будет получить его отдельно? Или покупать полный пакет обновлений? *у меня закончился период В крайнем случае можно будет попытаться его вычленить и доставить отдельно, но я бы очень не рекомендовал не обновлять system. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: May 27, 2016 В 19.05.2016 в 11:14, metrpro сказал: Какая это переменная, я её сам воткну Настройки - Общее - Куда добавлять кличество страниц в заголовке У этой настройки есть три положения - добавлять в настраничный заголовок, в мета-заголовк и в оба. Т.е. включаете опцию добавлять страницы в заголовок и уже эти переключателем решаете куда именно. А вот изменить само слово страница не выйдет - это свосем системное слово и переназначить в шаблоне его не получится. А если локализровать сам код, то там получится просто неоправданно большой кусок кода, только ради одного слова. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: May 27, 2016 В 18.05.2016 в 15:15, DoobBY сказал: Просто прописать такое правило? Для редиректа всего с "без слеша" на "со слешем" я использую вот такое правило RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*).php$ RewriteCond %{REQUEST_URI} !(.*)(.png|.jpg|.gif|.xml|.wav|.html)$ RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/ [L,R=301] Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: June 28, 2016 Вообщем, поплотнее сев за эту проблематику, я могу сообщить следующее. 1. Все дубли возникают по косякам самого движка - Костя уже писал тут, что для разработчиков это было непринципиально. В результате имеем, что ссылки для сеток grid_list и grid_thumbs системой генерируются со слэшем, как и для списка новых объявлений в футере. А вот для похожих объявлений на странице просмотра конкретного - без слэша. Ссылки на категории в меню и в хлебных крошках - тоже без слэша. Ссылки на новости - со слэшем. И личное меню залогинненого пользователя - тоже со слэшем. Т.е. тут такая чехарда, кто в лес, кто по дрова. Это все порождает дубли. 2. Я сам сторонник лаконичности и изначально попробовал перевести .htaccess на безслэшевый вариант. Но тогда путь к админке сайта оказался закрыт. И пришлось выбирать вариант с принудительным слэшем в конце. Однако, не все гладко при реализации любого пути и у меня к разработчикам вопрос: - как добавить слэш в ссылки хлебных крошек на странице просмотра объявления и в сетках? UPD: Еще одна выползающая нестыковка - это несоответствие формируемых движком ссылок слэш/безслэша и формирование ссылок в sitemap.xml: - ссылки на объявления передаются в карту без слэша - ссылки на predefinedlinks - без слэша - ссылки на категории (из структуры) - со слэшем ! кстати, если верить google search console, в sitemap передаются ссылки на неактивные элементы структуры ! - статичные страницы - со слэшем - новости - со слэшем - статьи - без слэша (причем с добавкой .html, но это ерунда) Отсюда второй вопрос - как добавить обязательный слэш во всех ссылках в карте сайта? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: July 5, 2016 Всем огромное спасибо за "помощь", проблему удалось решить исключительно путем вставки в двух местах файла /apps/sitemap/admin/admin.php условий проверки последнего символа передаваемого в sitemap URL. Тема мусолилась два месяца, поддержка "на высоте". Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
DoobBY 9 Жалоба Опубликовано: July 5, 2016 4 часа назад, metrpro сказал: Всем огромное спасибо за "помощь", проблему удалось решить исключительно путем вставки в двух местах файла /apps/sitemap/admin/admin.php условий проверки последнего символа передаваемого в sitemap URL. Тема мусолилась два месяца, поддержка "на высоте". Подскажите, пожалуйста, где вы его вставляли? Код из него или сам файл? Заранее спасибо =) * все мы маемся =))) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: July 6, 2016 19 часов назад, DoobBY сказал: Подскажите, пожалуйста, где вы его вставляли? Код из него или сам файл? Заранее спасибо =) Вообщем, у меня было решение для предпоследней версии модуля sitemap 1.3.9, сегодня обновил до свежей 1.3.10, вот решение для нее (там изменена процедура формирования УРЛ для карты). 1. Нужен файл /apps/sitemap/admin/admin.php 2. Примерно на 125 строке расположена функция, формирующая вывод файла карты protected function createSitemapFile($file_name, $urls){ 3. Через несколько строк начинается условие проверки каждого УРЛ на наличие в его начале "http://" (т.е. проверяется, абсолютная ссылка или относительная) if(preg_match('/^(http:|https:)/', $u['url'])){ 4. Находим чуть ниже строку $ret.='<loc>'.$u['url'].'</loc>'."\n"; И вместо неё вставляем условие проверки последнего символа (ЕСЛИ последний_символ НЕ "/", ТО выводим урл с "/", ИНАЧЕ оставляем, как есть): if(substr($u['url'], -1) != '/') {$ret.='<loc>'.$u['url'].'/</loc>'."\n";} else { {$ret.='<loc>'.$u['url'].'</loc>'."\n";} } 5. Спускаемся ниже и строку $ret.='<loc>'.$this->site_link.$u['url'].'</loc>'."\n"; Меняем на if(substr($u['url'], -1) != '/') {$ret.='<loc>'.$this->site_link.$u['url'].'/</loc>'."\n";} else { {$ret.='<loc>'.$this->site_link.$u['url'].'</loc>'."\n";} } 6. Все. Чтобы увидеть результат, в НАСТРОЙКАХ \ SITEMAP админки поменяйте время формирования карты сайта (на время). PS: Предупреждаю, что перед этим необходимо все ссылки в шаблонах проставить со слэшем в конце (_view, _grid_thumbs, _grid_list, menu_decorator, ссылки на любые статичные страницы, может еще где найдете), актуализировать disallow в robots.txt (по умолчанию там часть закрытых категорий стоит без слэша), а также настроить 301 редирект в .htaccess: RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/ [L,R=301] PPS: Вот, к чему приводит, когда сам сайт причесываешь на слэш в конце каждой ссылки, а в sitemap бардак!!! Каждая страница вгоняется дважды в индекс, что приводит к возникновению большого количества дублей! 2 DoobBY и yurijp reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
yurijp 2 Жалоба Опубликовано: September 22, 2016 Здравствуйте.1. Как, точнее где, могу добавить слэши в этих ссылках? ( https://cloud.mail.ru/public/Fj3p/kPdkLQEd9 ) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: September 22, 2016 3 часа назад, yurijp сказал: 1. Как, точнее где, могу добавить слэши в этих ссылках? ( https://cloud.mail.ru/public/Fj3p/kPdkLQEd9 ) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Helenblondi 29 Жалоба Опубликовано: January 27, 2017 В 10.05.2016 в 19:44, metrpro сказал: Воспользовавшись удобнейшим инструментом Google по поиску повторяющихся заголовков (тег title), я обнаружил следующую беду: - некоторые новости дублируются по двум адресам - один это news/ЧПУ, второй - news/newsID.html - некоторые объявления влетают в индекс почему-то тоже двумя способами - без слэша в конце и с ним - чтобы исключить возникновения дублей страниц поиска и объявлений необходимо добавление номера страницы в title (типовой способ в Настройках почему-то не работает) и - обязательно - добавление id объявления в title а где я могу увидеть номер страницы чтобы добавить ее в тайт? как в этом случае должен выглядеть тайт? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mykvartira 4 Жалоба Опубликовано: December 24, 2017 В 27.05.2016 в 23:54, abushyk сказал: Для редиректа всего с "без слеша" на "со слешем" я использую вот такое правило RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*).php$ RewriteCond %{REQUEST_URI} !(.*)(.png|.jpg|.gif|.xml|.wav|.html)$ RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/ [L,R=301] У меня не работает! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mykvartira 4 Жалоба Опубликовано: December 24, 2017 В 06.07.2016 в 08:03, metrpro сказал: RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/ [L,R=301] И это мимо Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
dima 13 Жалоба Опубликовано: December 25, 2017 я тоже жду кардинального решения по этому вопросу, так как дальнейшее продвижение сайта с дублями бессмысленно Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
metrpro 42 Жалоба Опубликовано: December 25, 2017 Ну если вышеперечисленные редиректы у кого то не срабатывают из за настроек сервера, то советую в header.tpl поставить проверку условия последнего символа url и при необходимости добавлять указание канонической страницы. Можно, в принципе, и без проверки условия Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: December 25, 2017 Только что, metrpro сказал: Ну если вышеперечисленные редиректы у кого то не срабатывают из за настроек сервера, то советую в header.tpl поставить проверку условия последнего символа url и при необходимости добавлять указание канонической страницы. Можно, в принципе, и без проверки условия а это как? вы используете каноникал? подскажите как? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mykvartira 4 Жалоба Опубликовано: December 25, 2017 Минималья рекомендация, от себятинка. Если что-то делаете по сайту ночью и не получается, сделайте это утром следующего дня. Сегодня Констанцин помог разобраться и объяснил бестолочи, спасибо за помощь. Вот что сработало у меня: RewriteCond %{REQUEST_METHOD} !=POST [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*).php$ RewriteCond %{REQUEST_URI} !(.*)(.png|.jpg|.gif|.xml|.wav|.html)$ RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/ [L,R=301] Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах