Все мы знаем про замечательный модуль Global Redirect. Также многие из нас юзают nginx в связке с php-fast-cgi. Я вот тоже пользуюсь всеми этими инструментами. Однако недавно обнаружил что Global Redirect у меня в принципе не работает, т.е. не редиректит с ссылок вида http://liveangarsk.ru/node/6845 на нужную, которая с алиасом. Стал разбираться, оказалось, что это надо nginx немного поправить.
В конфиге сервера у вас есть часть, отвечающая за rewrite при включенных clean urls, у меня она была такой
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
break;
}
}
И я уверен, что у многих это правило записано подобным образом. Я не спец по nginx, но это правило я где-то в инете взял. Так вот при такой записи Global Redirect не работал! Оказалось, что нужно написать немного по-другому, вот так:
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
break;
}
}
Т.е. добавить один слэш. Теперь Global Redirect работает как надо!
Этот фикс я взял вот здесь http://drupal.org/node/117756#comment-508344
Там обсуждали эту проблему, но ввиду ее малораспространенности, issue было закрыто без четкого вердикта.
Надеюсь, фикс вам пригодится.
Комментарии
Спасибо.