Как удалить дубли страниц со слешем в конце URL?

Главные вкладки

Аватар пользователя vvolka vvolka 3 сентября 2016 в 21:30

Установил модуль Pathauto для генерации синонимов. Задал шаблоны генерации для материалов [node:content-type:machine-name]/[node:title]. В итоге генерируется адрес со слешем на конце и без для одной и той же страницы:

  1. /os/5-udivitelnyh-zastavok
  2. /os/5-udivitelnyh-zastavok/

Мне не нужен второй вариант. Да и SEO рекомендует для конкретной страницы, а не раздела, использовать адреса без слеша на конце.
Редирект 301 со страницы без слеша на страницу с / использую c модулем Global Redirect, так как другого решения пока не нашёл.
Может есть вариант как заставить Drupal использовать для ноды только один синоним страницы и удалить слеш в конце URL? Подскажите, пожалуйста.

Лучший ответ

Комментарии

Аватар пользователя Van'Denis Van'Denis 3 сентября 2016 в 23:02

admin/config/system/globalredirect
Deslash
If enabled, this option will remove the trailing slash from requests. This stops requests such as example.com/node/1/ failing to match the corresponding alias and can cause duplicate content. On the other hand, if you require certain requests to have a trailing slash, this feature can cause problems so may need to be disabled.
Установить галку.

Аватар пользователя vvolka vvolka 4 сентября 2016 в 0:01

Slash (/)
Remove

По умолчанию стоит Remove

admin/config/system/globalredirect
Deslash

Так я ж написал что использую Global Redirect, которые перенаправляет страницы без слеша на страницы со слешем в конце. Где найти в Drupal саму генерацию слеша в конце URL и удалить, а не создавать редирект 301?

Аватар пользователя Matevosoff Matevosoff 5 января 2018 в 15:23

Добрый день, Всем

включил модуль

admin/config/system/globalredirect

там сразу стояла галочка на Удаление слеша

все заработало, через .htaccess удаление слеша не срабатывало, перепробывал кучу всего (результата 0)

Аватар пользователя Van'Denis Van'Denis 5 сентября 2016 в 12:14

100% не уверен, но что бы сделать то, что Вы хотите без модуля, Вам надо будет лезть в ядро Друпал. Где именно делается данная коррекция я не знаю. В любом случае лезть в ядро Друпал - не есть Гуд. Но если Вы так хотите, то ждите ответа от разработчиков Друпала.
Как вариант - есть возможность это делать в .htaccess (мне первый попавшийся результат запроса в Google). Я лично не делал. Мне за глаза хватает модуля Global Redirect.

Аватар пользователя gun_dose gun_dose 5 сентября 2016 в 12:18

vvolka wrote:

Так я ж написал что использую Global Redirect, которые перенаправляет страницы без слеша на страницы со слешем в конце. Где найти в Drupal саму генерацию слеша в конце URL и удалить, а не создавать редирект 301?

Нигде не найти. Посмотрите список синонимов - там нет нигде слэшей в конце. Если они откуда-то берутся, то только из-за того, что вы где-то вручную поставили этот слэш.

Аватар пользователя vvolka vvolka 6 сентября 2016 в 16:04

.htaccess максимум опять даст 301 редирект как и модуль Global Redirect.
Да не может быть, чтобы я руками проставил на 80 страницах слеш в конце адреса.
Где-то в ядре нужно поправить, не могу найти где.

Аватар пользователя dgastudio dgastudio 15 сентября 2016 в 19:25

это работает. специально проверил на чистом друпале и боевом сайте.

почему это не работает у вас, вопрос отдельный

Аватар пользователя vvolka vvolka 15 сентября 2016 в 19:29

Ну я уже писал что редирект 301 не нужен. А по другому модуль Global Redirect не убирает слеши в конце урла.

Аватар пользователя dgastudio dgastudio 15 сентября 2016 в 20:11

кстати, лишу вас сна.

www.drupal.ru/node/129918?dasdsadjkasldjaslkdsakldjsak также считывается друпалом.

а в страницы таксономии сделанные через views, вообще что угодно можно в урле забивать в конце.. и работает.

Аватар пользователя vvolka vvolka 16 сентября 2016 в 11:41

Ну причём тут 404...
Страницы вьюса, таксономии - это отдельный вопрос. Вы куда-то в сторону уходите не отвечая по существу.

При создании материала создаётся две страницы: одна со слешем, вторая без.
Должна создаваться только одна страница. У меня есть примеры сайта, на котором создаётся именно одна страница без слеша на конце и на надо говорить что там редиректы 301 и с головой у меня не так.

Аватар пользователя sergeybelya sergeybelya 16 сентября 2016 в 11:48

vvolka wrote:

При создании материала создаётся две страницы: одна со слешем, вторая без.

Ну ерунду же вы пишете, право. Страница создается одна. У нее есть id, есть канонический урл, который решает проблему всевозможных дублей. Что вы проблему-то придумали на ровном месте?
Варианты вам уже предложили, можно элементарно через .htaccess решить - https://moz.com/community/q/how-to-remove-trailing-slashes-in-urls-using..., если вам так это важно.

Аватар пользователя gun_dose gun_dose 16 сентября 2016 в 11:46

vvolka wrote:

При создании материала создаётся две страницы: одна со слешем, вторая без.

Давайте по порядку. Вы утверждаете, что создаются две страницы. Объясните нам, не сведущим, где вторая? Где вы её нашли? В базе, в списке синонимов или ещё где-то?

Аватар пользователя gun_dose gun_dose 16 сентября 2016 в 12:02

Значит у вас где-то явно прописаны страницы со слэшем и без. Гугл сам по себе не полезет проверять, есть ли ещё какие-то ссылки, он только видит, то, что явно указано. Проверьте каноникалы и другие метатеги, меню и т.д. И вообще, дайте ссыль на сайт, посмотрим коллективным разумом.

Аватар пользователя vvolka vvolka 16 сентября 2016 в 11:57

sergeybelya wrote:

Ну ерунду же вы пишете, право. Страница создается одна. У нее есть id, есть канонический урл, который решает проблему всевозможных дублей. Что вы проблему-то придумали на ровном месте?

Варианты вам уже предложили, можно элементарно через .htaccess решить - https://moz.com/community/q/how-to-remove-trailing-slashes-in-urls-using-htaccess-apache, если вам так это важно.


Да никто и не спорит, есть id, задана канонический урл. Только не пониманию как он может решить проблему дублей?

Да сколько раз писать то..301 редирект не выход.

Аватар пользователя sergeybelya sergeybelya 16 сентября 2016 в 12:00

Канонический урл как раз и решает проблему дублей - https://webmasters.googleblog.com/2013/04/5-common-mistakes-with-relcano...
Но если вы все же хотите редиректить с урла со слешем на без него или наоборот, то для этого как раз и нужен 301 редирект. А дубли вида /node/1 вас не волнуют?:)

Аватар пользователя vvolka vvolka 16 сентября 2016 в 12:11

sergeybelya wrote:

Канонический урл как раз и решает проблему дублей - https://webmasters.googleblog.com/2013/04/5-common-mistakes-with-relcanonical.htm

Но если вы все же хотите редиректить с урла со слешем на без него или наоборот, то для этого как раз и нужен 301 редирект. А дубли вида /node/1 вас не волнуют?:)


Попробую задать абсолютный адрес для канонической ссылки.

Нет не волнуют, их нет вообще. Pathauto справляется на ура.

Аватар пользователя vvolka vvolka 16 сентября 2016 в 12:24

globalredirect включен или нет адреса вида /node/1 редиректятся на заданные синонимы. Хватит Вам писать про 301 редирект и globalredirect.

Посмотрю что скажет гугл на абсолютный адрес canonical после апдейта.

Аватар пользователя vvolka vvolka 16 сентября 2016 в 12:31

Думаю, Вы итак знаете ответ на этот вопрос или догадываетесь.
Не хочу с Вами спорить, я здесь не эа тем, чтобы выяснять каким образом происходит редирект на сервере...

Аватар пользователя sergeybelya sergeybelya 16 сентября 2016 в 12:36

Давайте все сначала. Скиньте ссылку на сайт, как вас уже попросили, или покажите скринами, где у вас выводятся ссылки со слешем в конце? Как вам уже справедливо заметили в выше, друпал и pathauto не генерирует синонимы со слешем в конце.

Аватар пользователя fairrandir fairrandir 16 сентября 2016 в 12:52

Товарищ vvolka, поясните по хардкору:
1. Вы знаете что такое 301 редирект и зачем он нужен?
2. Что в вашей терминологии означает «генерируется адрес со слешем». Где генерируется? Где выводится?
3. Если идиот пользователь добавит слэш в конец ссылки - что блджад должно произойти? Выдать 404?

Аватар пользователя vvolka vvolka 16 сентября 2016 в 13:04

Сайт userello.ru.
Сейчас галка Удаление слеша в модуле GlobalRedirect снята
Практически для любой статьи есть две ссылки
http://userello.ru/gadget/chto-takoe-bystroe-zaryadnoe-ustroystvo-quick-...
http://userello.ru/gadget/chto-takoe-bystroe-zaryadnoe-ustroystvo-quick-...
Вот скриншот из Screaming Frog. Другие аналогичные сервисы показывают также два адреса.
http://c2n.me/3CiqArr

Если галку Удаление слеша поставить то для http://userello.ru/gadget/chto-takoe-bystroe-zaryadnoe-ustroystvo-quick-... происходит 301 редирект на http://userello.ru/gadget/chto-takoe-bystroe-zaryadnoe-ustroystvo-quick-...

А вот сайт uniqpage.ru.
У него также установлен модуль GlobalRedirect, галка Удаление слеша снята и Screaming Frog и другие сервисы выдают адреса без ссылок на конце, редиректа на 301 нет.
Вот скриншот из Screaming Frog.
http://c2n.me/3CirJiR

Поэтому и возникает вопрос как сделать так же.

Аватар пользователя sergeybelya sergeybelya 16 сентября 2016 в 13:10

На втором сайте у вас .html в конце. В коде первого сайта у вас нет нигде ссылок со слешем в конце, отсюда вопрос - с чего вы взяли, что Друпал их генерит? И еще - у вас нет rel=canonical в исходнике.

Аватар пользователя vvolka vvolka 16 сентября 2016 в 13:14

html задан в шаблонах pathauto. Для первого и второго сайта ставлю html или нет в шаблонах, поведение одинаковое.
Как это нет. Например, по ссылке http://userello.ru/gadget/chto-takoe-bystroe-zaryadnoe-ustroystvo-quick-... в исходнике

Аватар пользователя sergeybelya sergeybelya 16 сентября 2016 в 13:17

Простите, но реально надоело тратить на вас время. Вам уже ответили несколько человек. Я так и не понял чем вас не устраивают предложенные решения.

Аватар пользователя dgastudio dgastudio 16 сентября 2016 в 13:17

хоть в лоб хоть по лбу.

вы сами нагенерили ссылок с конечным слешем.
поискових их схавал, но у него мозгов хватает чтобы считать тег canonical + 301 редирект.

поэтому, проблемы нет.

Аватар пользователя vvolka vvolka 16 сентября 2016 в 13:46

Спасибо за советы всем.
Так и не понял как вы получили скрин исходника. Перекопал всё что можно: меню, шаблоны, термины, синонимы
нигде нет слеша. Ума не дам как это я нагенерил ссылок с конечным слешем.
http://c2n.me/3CiyObP
Просто хочу разобраться, а не читать что у Вас нет времени или что мозгов у Вас много.
Сюда задают вопросы, чтобы как раз и воспользоваться Вашими мозгами и получить понятные ответ.