Вы здесь

Как отключить маскирование символов в URL?

0

Добрый день.
Переношу на Drupal 8.6.3 сайт, функционирующий на самописной CMS.
URL переносимого сайта имеют вид https://сайт.ру/?show=page_name и https://сайт.ру/?show=comments&id=001.
При создании в Drupal ноды и назначении для неё алиаса вида /?show=page_name URL формируется следующий: /%3Fshow%3Dpage_name Это не устраивает, т.к. нужно сохранить старые URL для бирж ссылок.
При этом запрос вида /?show=page_name для Drupal ведёт на главную страницу сайта, а не на созданную ноду.
Подскажите, пожалуйста, как можно "отключить" экранирование и "научить" движок относить ссылки вида /?show=page_name к нодам.

Версия Drupal: 
8.x
Вопрос задан 29.11.2018 - 17:25

Ответы

0

Это не очень удобно и черевато сложностями в будущем с фильтрами. Проще формировать ссылки вида http://сайт.ру/page_name и http://сайт.ру/comments/001.

При этом сделать 301 редирект на эти страницы со старых url'ов. По сео в данном случае не потеряете, а вид ссылок будет нормальный.

Если же хотите сделать именно то, что описали, то стоит посмотреть на альтер роутов: https://www.drupal.org/docs/8/api/routing-system/altering-existing-route.... По ссылке приведено, как переделать 'user/login' на 'login'. По примеру можно и вашу задачу решить.

Вот ещё несколько примеров, как можно решить эту задачу https://drupal.stackexchange.com/questions/218824/how-to-alter-node-url-...

Ответ дан 02.12.2018 - 10:52
Аватар пользователя shu
shu
162

Добрый день.

При этом сделать 301 редирект на эти страницы со старых url'ов. По сео в данном случае не потеряете, а вид ссылок будет нормальный.

Движок при обращении по ссылкам вида https://сайт.ру/?show=page_name и https://сайт.ру/?show=comments&id=001 открывает главную страница сайта, т.е. не обрабатывает параметры. Настроить 301 редирект, например модулем Redirect, для таких ссылок не получается. Модуль выдает сообщение для подобного URLа при попытке создания: "Данное значение не должно быть пустым" (пытался создать редирект с ?show=page_name на нужную ноду).

Если же хотите сделать именно то, что описали, то стоит посмотреть на альтер роутов:

Ваши ссылки изучил, понимания, как решить проблему, не прибавилось. Ранее использовал/настраивал только готовые модули и минимум программировал. Ссылки, которые Вы привели требуют создания собственного модуля или вмешательства в ядро движка?

Комментарий оставлен 6 дней назад