Подскажите что делаюб не так.
На всех сайтах работает, а на этом нет и самое главное не понимаю в чем может быть причина.
В настройках языка сделал мультиязычность через префикс. для английского прописал en в качестве префикса.
Но! Когда я делаю http://мой-сайт/en - выдает мне Drupal:
Страница не найдена
Запрашиваемая страница не найдена.
****************
Подскажите пожалуйста, Что я делаю не так и как понять что я делаю не так......
Комментарии
Спасибо
В типе материалов я все указал.
Более того ноды создаются но к примеру
если node/1 русская версия
а node/2 в переводе английская то
а в ЧПУ им указываю обоим один адрес то
/page откроется
а вот /en/page отдаст ту же ошибку что и http://мой-сайт/en
к сожалению я не могу просто так сравнивать настройки так как отличия есть на первый взгляд
к примеру работает этот сайт на ngnix+faccgi но я не думаю что проблема может быть в этом.
так же на сайте происходит авторизация через SSL но я пробовал выключать этот модуль - безрезультатно
Простите, но что такое Translation redirect и где это смотреть?
Так же я не понимаю пока что за модуль Вариабле кажется у меня его нет или я не то ищу
а где именно настраиваются галочки для синхронизации ?
Знаю, что надоел. Но,
admin/content/node-type/page
ниже картинка того, что я вижу. Не могу найти здесь вариаблес
Глобальные языковые настройки проверяли? admin/settings/language/configure, admin/settings/language/i18n
да, вот здесь admin/settings/language/configure - стоит как и указал выше Только префикс пути.
а у модуля i18n
стоит только первая галочка Current language and language neutral.
но беда в том, что переводы создаются и они связываются. Не работает именно префикс. Т.е. сами переведенные ноды они есть.
НО открыть мой-сайт/en невозможно как и мой-сайт/node/en/1 и.т.д. -(
Зашел в admin/settings/language/i18n/variables
а там оказывается
There are no multilingual variables.
мне стоит волноваться ?
Сложно сказать, посмотрите как на нормальном вашем сайте. На сайте где я смотрю - есть переменные
Меня смущает, что язык интерфейса у вас английский ( например, Current language and language neutral )
Проверьте admin/settings/language, admin/settings/language/edit/en, admin/settings/language/edit/ru
Все ли в порядке там с префиксами и с языком по умолчанию. Сравните с настройками "хорошего" сайта.
если честно настройки один в один.
но хотя бы понять где именно проблема есть шанс? Может есть какой-то отладчик или что-то еще ? Ведь даже не понятно на каком именно этапе происходит сбой и почему не работают префиксы.
Причем префиксы обязаны работать и совсем без i18n - проверил на другом сайте и так и есть.
admin/settings/language - включено 2 языка русский и английский. Русский по умолчанию
admin/settings/language/edit/en все стандартное. В поле Префикс пути: я дописал: en
admin/settings/language/edit/ru - все стандартное как и на работающем сайте только в префикс пустой пустой
Итак! Я немного локализовал проблему!
Оказывается у меня не применяется вот это значение
вот на этой странице
admin/settings/language/edit/en
в поле Префикс пути:
я прописываю естественно en
и эти данные не применяются. Т.е. такое чувство, что они не прописываются куда-то в базу. Потому что именно такая ошибка у меня на другом сайте если это поле пустое (понимаю что оно пустым быть не может для не дефолтного языка но). Если в этом поле скажем написать ii и попробовать потом открыть сайт через мой-сайт/en то выдается ровно такая ошибка которая у меня генерируется на нужном мне сайте.
Внимание. Вопрос.
Где проверить в базе эти настройки префикса вручную? Возможно имеет смысл их прописать руками и все заработает но пока не понимаю где это делается в каких таблицах или файлах
Смотрите таблицу languages, поле prefix. Возможно, какие-то таблицы в базе запорчены, все может быть. Попробуйте экспортировать, потом пересоздать базу. Обязательно делайте бекапы перед изменениями.
Спасибо посмотрел.
Префикс en прописан как и положено
скорее всего тогда остается только одно - проблемы в редиректах настроеных в nginx - но на первый взгляд проблем там нет
Странно, смотрю в locale.module, там делается запрос db_query("SELECT * FROM {languages} WHERE language = '%s'", $langcode), а по факту получается, не возвращается префикс.
Возьмите оригинальный друпаловский .htaccess (для вашей версии друпала). Отключите редиректные модули, если есть.
Скопируйте сайт на хостинг, где ваши хорошие сайты, может действительно дело в серверных настройках.
к сожалению я не могу это сделать так как на сервере nginx - соответвенно никакого хтаксеса там нет...
Я имел в виду, если были правки в .htaccess, который находится в корневой директории друпала, то для чистоты эксперимента лучше заменить его на оригинальный друпаловский файл.
когда сайт работает под nginx то хтаксеса там нет совсем (
в дополнение пробовал пробовал в поле префикса писать
admin/settings/language/edit/en
https://www.мой-сайт/en
https://мой-сайт/en
мой-сайт/en
www.мой-сайт/en
пока не помогло ничего (
да. как я сказал, сайт работает на https с помощью модуля Secure Pages (но если его выключаю проблема не меняется) и очевидно где-то стоит редирект так как как не извернись сайт всегда открыватся с www
и да. сайт этот (в отличие от других) работает на ngnix соответвенно может проблема с редиректами тогда кроется где-то здесь.
Правда я не понимаю где, ведь все чпу работают исправно кроме префикса
Решено! Поиск рулит. Проблема была полностью описана умными людьми вот здесь ! http://www.drupal.ru/node/50323 -)