Вы здесь

URL alias раздела форума создаёт алиас для пути таксономии, а не для адреса подфорума

0

Коллеги, поясните мне пожалуйста, нижеописанное поведение 8-го Друпала, логику которого у меня до конца не получается понять самостоятельно:

Есть Drupal 8.4.3, включаю в нём дефолтный модуль Forum. На сайте появляется ссылка "Forums", а в ней один автоматически созданный раздел, имеющий URL mysite.com/forum/1

На дворе 2018-й год (уже) и я решаю, что неплохо бы этот и без того привлекательный УРЛ сделать совсем красивым.
Для этого я в админке по адресу mysite.com/admin/structure/forum нажимаю "Edit forum" и попадаю на страницу mysite.com/admin/structure/forum/edit/forum/1

Там в поле "URL alias" я указываю /forum/niceurl, чтобы получить mysite.com/forum/niceurl вместо mysite.com/forum/1

И вот тут начинается непонятное.
Если я захожу на дефолтный адрес mysite.com/forum/1, то вижу правильную картину - предложение создать новую тему, т.к. форум ещё пустой:

Drupal forum URL alias

НО!
Если зайти на mysite.com/forum/niceurl, то там уже будет вот такое, что не есть правильно:

Drupal forum taxonomy URL

По факту это то, что отображается при посещении mysite.com/taxonomy/term/1
В этом можно дополнительно убедиться зайдя в админке в "Administration > Configuration > Search and metadata" - mysite.com/admin/config/search/path (алиас создался для /taxonomy/term/1).

В то время как для правильного функционирования этот алиас должен был быть создан для /forum/1

  • Во-первых, почему так происходит?
  • А во-вторых, если я исправлю алиас на логически верный (см. выше), не вызовет ли это каких-либо глюков или проблем с SEO?
  • Или может ЧПУ для разделов форума нужно задавать по-другому?
Версия Drupal: 
8.x
Категория: 
Taxonomy API
Связанные проекты: 
Taxonomy PathPath
Вопрос задан 04.01.2018 - 09:39

Ответы

0

Я посмотрел код модуля, и похоже форум использует термины таксономии для создания разделов форума.

forum.page:
  path: '/forum/{taxonomy_term}'
  defaults:
    _controller: '\Drupal\forum\Controller\ForumController::forumPage'
    _title_callback: '\Drupal\taxonomy\Controller\TaxonomyController::termTitle'
  requirements:
    _permission: 'access content'

То есть, вы изменили alias для термина таксономии.
Попробуйте, задать алиас другим способом, напрямую через Добавить синоним
/admin/config/search/path/add

Существующий системный путь: /forum/1
Синоним пути: /forum/testurl

Потом зайдите по адресу /forum/testurl и проверьте.
Я не уверен, что этот способ будет работать, отпишитесь о результатах.

Ответ дан 12.01.2018 - 13:46