Сообщения без ответов | Активные темы Текущее время: 28 сен 2020, 18:35



Ответить на тему  [ Сообщений: 21 ]  Страница 1, 2, 3  »
Дубли страниц 
Автор Сообщение

Зарегистрирован: 18 дек 2017, 11:37
Сообщения: 26

Здраствуйте!
Существуют ссылки - дубли:
site.ru/nedvizh/kvartiry/prodam/
и
site.ru/russia/mos-obl/nedvizh/kvartiry/prodam/

а также
site.ru/messages/96-kvartira-3x-kom.html
и
site.ru/russia/mos-obl/messages/96-kvartira-3x-kom.html

В sitemap.xml кстати формируются ссылки вида:
site.ru/nedvizh/kvartiry/prodam/
site.ru/russia/mos-obl/
site.ru/messages/96-kvartira-3x-kom.html
Независимо от того стоит ли в админке галочка "Использовать региональные URL".

Вопрос:
Подскажите как сделать редирект, чтобы при выбранном регионе ссылки не формировались с регионом?
Пример:
site.ru/russia/mos-obl/nedvizh/kvartiry/prodam/ redirect 301 на site.ru/nedvizh/kvartiry/prodam/
С сохранением выбранного региона и отбора объявлений в нем.

Либо другой вариант, чтобы при установленном "Использовать региональные URL" формировались ссылки только с регионом, в том числе и в sitemap.xml
Пример:
site.ru/nedvizh/kvartiry/prodam/ redirect 301 на site.ru/russia/mos-obl/nedvizh/kvartiry/prodam/
site.ru/messages/96-kvartira-3x-kom.html redirect 301 на site.ru/russia/mos-obl/messages/96-kvartira-3x-kom.html


24 дек 2019, 15:41
Профиль
Администратор
Аватара пользователя

Зарегистрирован: 20 сен 2010, 21:15
Сообщения: 1424
Аватара пользователя

При выключенных региональных URL сами URL регионов не становятся невалидными, просто ссылки на рубрики формируются без регионов, а информация о текущем регионе хранится в куках. Если старые ссылки были проиндексированы поисковыми системами, можно закрыть их от индексации с помощью опции "Запретить индексировать страницы регионов".
Чтобы полностью скрыть региональные URL, можете написать обработку, которая их будет убирать 301-м редиректом. Добавьте в папку commands файл с раширением .inc. Пропишите там:
Код:
<?php
if(!empty($second_region['uri'])){
   $region_uri = '/'.implode('/', $second_region['uri']);
   if(strpos($_SERVER['REQUEST_URI'], $region_uri) !== false){
       $redirect = str_replace($region_uri, '', $_SERVER['REQUEST_URI']);
       redirect301($redirect);
       exit();
   }
}
?>

_________________
support@illusionweb.org


27 дек 2019, 13:11
Профиль

Зарегистрирован: 18 дек 2017, 11:37
Сообщения: 26

Редирект на ссылку без регона работает. Но когда выбираешь один из регионов, то белый экран.


27 дек 2019, 13:38
Профиль
Администратор
Аватара пользователя

Зарегистрирован: 20 сен 2010, 21:15
Сообщения: 1424
Аватара пользователя

По какой ссылке видите белый экран?

_________________
support@illusionweb.org


27 дек 2019, 13:48
Профиль

Зарегистрирован: 18 дек 2017, 11:37
Сообщения: 26

Было по ссылке: site.ru/russia/mos-obl/
Разобрался, в .htaccess стоял редирект на без "/" на все формирующиеся ссылки, из-за этого возникал циклический редирект.

Подскажите где поправить, чтобы региональные ссылки формировались без слеш? А во избежание дублей был бы редирект на без "/"


27 дек 2019, 14:13
Профиль

Зарегистрирован: 18 дек 2017, 11:37
Сообщения: 26

И еще вопрос. При варианте редиректа
Код:
<?php
if(!empty($second_region['uri'])){
   $region_uri = '/'.implode('/', $second_region['uri']);
   if(strpos($_SERVER['REQUEST_URI'], $region_uri) !== false){
       $redirect = str_replace($region_uri, '', $_SERVER['REQUEST_URI']);
       redirect301($redirect);
       exit();
   }
}
?>

Мы фактически лишаемся региональной привязки для поисковиков, т.к. все региональные ссылки переадресуются на главную страницу.

Как Вы считаете, возможно лучше второй предложенный вариант?
Чтобы все ссылки формировались с региональной привязкой и соответственно был бы редирект где без них (по аналогии как в авито).


29 дек 2019, 09:20
Профиль
Администратор
Аватара пользователя

Зарегистрирован: 20 сен 2010, 21:15
Сообщения: 1424
Аватара пользователя

Да, все региональные ссылки редиректятся на главную, а информация о выбранном регионе хранится в куках.

Чтобы сделать редирект на урлы без слэша на конце надо переписать этот код в includes/compile/cat.php
Код:
    if(substr($_SERVER['REQUEST_URI'], -1) != '/'){
       $ext = get_ext($_SERVER['REQUEST_URI']);
       if(strpos($_SERVER['REQUEST_URI'], '?') === false && !isset($_GET['page'])){
        redirect301($_SERVER['REQUEST_URI'].'/');
       }
    }


Делаем так
Код:
    if(substr($_SERVER['REQUEST_URI'], -1) == '/'){
       $ext = get_ext($_SERVER['REQUEST_URI']);
       if(strpos($_SERVER['REQUEST_URI'], '?') === false && !isset($_GET['page'])){
        redirect301(substr($_SERVER['REQUEST_URI'], 0, -1));
       }
    }

Сами ссылки надо переписывать в файлах шаблона. В зависимости от используемого шаблона и типа вывода подрубрик эти ссылки чаще всего генерятся в шаблонах treeX.html

_________________
support@illusionweb.org


30 дек 2019, 10:59
Профиль

Зарегистрирован: 18 дек 2017, 11:37
Сообщения: 26

Спасибо, помогло!
Подскажите еще пожалуйста. Как сделать чтобы в хлебных крошках ссылки не формировались с регионом и без слеша в конце?


11 янв 2020, 16:16
Профиль
Администратор
Аватара пользователя

Зарегистрирован: 20 сен 2010, 21:15
Сообщения: 1424
Аватара пользователя

Хлебные крошки формируются в функции breadcrumb в smarty/modifirs.php, попробуйте изменить её самостоятельно.

_________________
support@illusionweb.org


13 янв 2020, 11:10
Профиль

Зарегистрирован: 18 дек 2017, 11:37
Сообщения: 26

Прежде чем написать пытался, но не выходит. Помогите пожалуйста!


13 янв 2020, 13:09
Профиль
Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 21 ] 

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти: