Добрый вечер, коллеги!
Возник вопрос, к поиску решения на который я пока даже не знаю, как подступиться. Быть может, кто-нибудь из вас сталкивался с подобной проблемой и сможет подсказать решение.
1. Есть куча (тысячи) УРЛов вида example.net/node-type/nid (Pathauto).
2. Хочется заменить (с 301 редиректом) на более «дружелюбные», например: example.net/node-type/nid/node-title.
3. Надо сохранить возможность находить ноды (в том числе те, что будут созданы позднее) через адрес старого «типа» (example.net/node-type/nid), тем более, что многие из этих УРЛов хорошо засвечены в поисковиках.
Первая мысль — использовать Path redirect со включённым «example.net/node-type/nid», где стоит опция автоматического создания редиректа при изменении алиаса. Но это не решает третью подзадачу для тех нод, что будут созданы в будущем: все они получат алиасы вида example.net/node-type/nid/node-title, а example.net/node-type/nid создан не будет.
Вторая мысль — использовать views типа page с адресом node-type и передавать ему в качестве аргумента nid. В результате любая нода нужного типа (в том числе созданная в будущем) будет получена как при обращении по адресу старого типа, так и по адресу нового... Но это не решает вторую подзадачу полностью, так как ведёт к дублированию содержимого, потому что поисковики будут видеть одинаковые страницы по адресам обоих типов, что не кошерно.
Можно ли как-нибудь соединить две эти «мысли» в одну? Представляется что-нибудь типа views, которому скармливается аргумент nid, а на выходе получается 301 на адрес ноды, которая соответствует результату выполнения запроса во views.
Комментарии
а зачем?
На тот случай, если пользователь по какой-то причине ввёл в адресной строке неправильный адрес страницы. Сам не раз сталкивался с тем, что получал ссылку на статьи с аналогичными адресами, но, когда в адресе была допущена ошибка, я в итоге видел 404. Тем не менее, отказавшись от последней части адреса (node-title), всё же можно найти нужную ноду. Мне потому и хочется использовать views с первым аргументом (nid), потому что тогда вне зависимости от второго аргумента (node-title) нужный материал всегда будет найден.
честно говоря я еще не встречал пользователей, кто вручную бы вбивал полный адрес, или даже nid, максимум делают закладки, минимум - вбивают домен и роют по сайту, ну и заходы с поисковиков - само собой))
в этом видеокурсе http://www.wowebook.com/open-source/drupal-seo.html есть решение этого вопроса
Может быть я уже просто слишком мудрю Но задачу хочется решить хотя бы из практического интереса — узнать, как это делается
Спасибо за ссылку на видео!
Для D6 это модули Pathauto в связке c Path redirect.
Вроде как аналогия для D7 из той связки модуль Redirect, но непонятно, как с ним в D7 сделать такую же автоматическую переадресацию со старых алиасов на новые.