И тут после установки pathauto я решил дополнить его рекомендуемым модулем Global Redirect. При этом предварительно посмотрел содержание модуля. Оказалось, Global Redirect простой и содержит 1 файл размером меньше 4кб, никаких изменений в БД не вносит. Действительно, вся работа грубо говоря сводится к проверке наличия алиаса функцией drupal_get_path_alias и при обнаружении такового делаем drupal_goto с параметром 301.
На деле оказалось не так просто. Подключив модуль без всяких лишних телодвижений с тестированием бекапом и т.п. я тут же получил зацикленный 301 редирект всего, кроме главной страницы.
И так как не было возможности ни отключить модуль, ни даже зайти в админку, в т.ч. используя пути index.php?q=tra-ta-ta (с чем кстати и борется Global Redirect), пришлось быстренько подправлять код. Обошлось без потерь простым return FALSE; в начале функции. Но главное сработал один из Законов Мерфи который по-русски называется "западло". :)
Разбираться что-как-почему не стал, посмотрел issues к модулю, есть Endless loop with translation (D6), судя по последним комментариям как раз подходит под мою проблему. Модуль pathauto ставился со взглядом на ближайшие изменения в структуре блога prodating.ru, но до них пока не дошел. Собственно и пост написан про "западло" :)
добавлено:
После публикации поста грех было не покопаться. Проблема где-то здесь:
// Compare the request to the alias. If we have a language prefix then prefix the alias and compare. This also works as a 'deslashing' agent too
if ((empty($language->prefix) ? $alias : $language->prefix .'/'. $alias) != $_REQUEST['q']) {
drupal_goto($alias, $query_string, NULL, 301);
}
Комментариев нет:
Отправить комментарий