Проблема с Pathauto или с синонимами/редиректами во всяком случае. Началось после какого-то апдейта, сейчас у меня 6.17 Acquia. Синонимы создаются, но не используются ни в меню, ни во views. Более того, если посмотреть список сгенерированных синонимов, скопировать "чистый" путь и попытаться загрузить страничку, то с некой вероятностью получается 404 ошибка — такой страницы нет. А некоторые работают. Судя по ИДам, 404 ошибка возникает для "старых" материалов, созданных еще до апдейта. Других отличий не нашел.
При редактировании поле ввода и у новых и у старых нод одинаково отключено, стоит галка "автоматические синонимы" и в поле вписан корректный синоним. Но работает не везде.
Использую такой шаблон: [termpath-raw]/[title-raw]-[nid]
Удаление и массовая генерация синонимов работает, но эффекта никакого нет.
Включен Global Redirect, но его отключение никакого эффекта не дает.
Кеш отключен вовсе.
Кто-нибудь сталкивался с такими спецэффектами? Какой дорогой выбираться? Отключить pathauto (а то и path) попробовать?
Добавлено
Pathauto (не знаю с какой версии начиная) при генерации синонима (лежат в табличке url_alias) проставляет ему тот же язык, которым помечена нода. Я в какой-то момент (после создания некоторого количества материалов) добавил русский язык и отключил английский. Старые ноды остались с language=en, новые создавались с language=ru. Синонимы аналогично. Я просто сманил язык нодам и синонимам через phpmyadmin. Работает.
Комментарии
Еще какие-нибудь модули по работе с УРЛами есть? URL Alter например. Есть ли функции custom_url_rewrite_inbound, custom_url_rewrite_outbound?
Кеш - почистить! На самом деле Друпал кое-что кэширует вне зависимости от настроек.
Ничего такого нет. Отключение pathauto и path не помогло. Удалить настройки можно только для pathauto, но проблема не в нем — с отключенным pathauto и включенным path такие же проблемы — на "старых" нодах и вручную назначенные алиасы не работают. Вероятно, надо будет лезнь в базу ручками и сравнивать там. Удалить настройки и данные path по-простому нельзя, как я понял.
Кеш почистил. Других модулей нет. Только что обнаружил еще один симптом — на "старых" материалах я не могу и вручную задать синоним. Снимаю галку, меняю синоним — он сохраняется, но не используется все равно.
Решил проблему. С апдейтами не связано. Раньше язык был один, английский. Потом добавил русский, английский отключил.
Старые ноды остались с признаком английского языка.
Решение: update`node` set language='ru'
Аналогично для таблицы url_alias, если они есть, либо массовая генерация, если там пусто.
+1, была загвоздка... Спасибо автору!