Битрикс указывает на другую страницу

DzSoft

3T
Регистрация
13 Сен 2007
Сообщения
357
Реакции
296
Всем привет.
Есть темка, не могу решить никак.
Может кто сможет подсказать?

Есть в header.php строка
HTML:
<link rel="canonical" href="<? echo $APPLICATION->GetCurDir(); ?>" />
понятно дело указывает канонический адрес страницы (избавляюсь от дублей)

адрес выдаёт так /city/name
если открыть код страницы и нажать на канонический урл, то попадаешь в принципе туда куда нужно, но существует проблема.

в вебмастере яндекса почему-то говориться о том, что

site.ru/city/name/
Страница обходится роботом, но отсутствует в поиске.
Статус в поисковой базе: 200 OK Версия страницы: 09.04.2018 – 10:52
Последний обход: 200 OK Версия страницы: 09.04.2018 – 02:00

Страница дублирует уже представленную в поиске страницу site.ru/city/nameN/. Укажите роботу предпочтительный адрес с помощью 301 редиректа или атрибута rel="canonical".

в поиске сейчас почему-то находится такой адрес site.ru/city/name, а должен site.ru/city/name/
Все условия прописаны верно. Метры информации прочитано.

Вопросы:
а)Как роботу яндекса дать понять, что адреса:
site.ru/city/name - не верный
site.ru/city/name/ - верный
если всё время адрес site.ru/city/name/

б)Как роботу яндекса дать понять, что адрес:
site.ru/city/nameN/ - является адресом site.ru/city/nameN/
а
site.ru/city/name/ - является адресом site.ru/city/name/
 
По хорошему это на уровне веб-сервера(nginx, apach) редиректят, тогда нагрузка минимальная.

В современных фреймворках задаётся на уровне роутера. Попробуй почитать доки на эту тему.

В идеале и там и там :)
 
По хорошему это на уровне веб-сервера(nginx, apach) редиректят, тогда нагрузка минимальная.

В современных фреймворках задаётся на уровне роутера. Попробуй почитать доки на эту тему.

В идеале и там и там :)
а причем тут веб-сервера(nginx, apach)????

p.s.: не много не допонял. =(
 
Последнее редактирование:
а)Как роботу яндекса дать понять, что адреса:
site.ru/city/name - не верный
может все под одну гребнку?
Код:
############################################################################
#### Добавляем слеш(/), если его нет, и это не файл.                    ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
   # Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
   # Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
   # В URL нет точки (файл).
RewriteRule ^(.*)$ $1/ [L,R=301]
   # Добавляем слеш в конце.
 
может все под одну гребнку?
Код:
############################################################################
#### Добавляем слеш(/), если его нет, и это не файл.                    ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
   # Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
   # Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
   # В URL нет точки (файл).
RewriteRule ^(.*)$ $1/ [L,R=301]
   # Добавляем слеш в конце.
Да роде в sitemap.xml указано. в условиях указано. Везде указано.

то есть если просматривать сайт физически, то всё гуд. Я все подправил и если ранее были с выходом на html а другие на / то сейчас все на /

Но вот индексируется без слеша или говорит что является дубликатом. или говориться что является дубликатом "города10", хотя сама создавалась первоночально и является "городом1"

Но спасибо пару строк я добавил в htaccess

старые ссылки сейчас поисковик начинает удалять

Страница проиндексирована по каноническому адресу Для просмотра ссылки Войди или Зарегистрируйся, который был указан в атрибуте rel="canonical" в исходном коде. Исправьте или удалите атрибут canonical, если он указан некорректно. Робот отследит изменения автоматически.

а должен быть Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
Кто нибудь подскажет куда яндексу письма слать?
 
может все под одну гребнку?
Код:
############################################################################
#### Добавляем слеш(/), если его нет, и это не файл.                    ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
   # Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
   # Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
   # В URL нет точки (файл).
RewriteRule ^(.*)$ $1/ [L,R=301]
   # Добавляем слеш в конце.
не помогло... всё начало уходить в 404
 
смотри RewriteBase / и порядок выполнения
рабочий комплект
Код:
############################################################################
#### Cтандартный .htaccess для                     ####
############################################################################
Options -Indexes
ErrorDocument 404 /404.php

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} /sitemap.*?\.xml
RewriteRule ^(.*)$ /bitrix/tools/sitemap.wrapper.php [L]

   #  Директива включает редиректы.
RewriteBase /
   # Без директивы (.*) = /$1 будет /var/wwww/site/web/$1  с директивой  = /$1
Options +FollowSymLinks
   # Разрешает переход по символическим ссылкам.

############################################################################
#### Добавляем слеш(/), если его нет, и это не файл.                    ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
   # Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
   # Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
   # В URL нет точки (файл).
RewriteRule ^(.*)$ $1/ [L,R=301]
   # Добавляем слеш в конце.

############################################################################
#### Убираем index.php, если он есть в конце URL                        ####
############################################################################
RewriteCond %{REQUEST_METHOD} =GET
   # Выявляем GET запрос в URL (не POST).
RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
   # URL cодержит index.php в конце.
RewriteRule ^(.*)$ %1/ [R=301,L]
   # Удалить index.php из URL.

############################################################################
#### С www на без www                                                                             ####
############################################################################
  RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
  RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
  RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
  RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]

</IfModule>

<IfModule mod_dir.c>
  DirectoryIndex index.php index.html
</IfModule>

<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresByType image/jpeg "access plus 3 day"
    ExpiresByType image/gif "access plus 3 day"
</IfModule>
 
Назад
Сверху