Приветствую всех. Ломаю голову уже второй день, ничего не могу придумать. Поставил друпал, поставил галерею, настроил поддержку нескольких языков и там и там, связал их вместе. В друпале включены поддержка “чистых ссылок”, согласование языков “Префикс пути”. То есть, ссылка на галерею выглядела как http://test.handelmarkt.de/%language%/gallery (в моем случае %language% - это ru, de или вообще ничего в случае с английским языком по умолчанию). Казалось бы, все отлично. Но. При попытке зайти в альбомы при включенных языках, отличных от английского, выдавал “страница не найдена”. Причем именно в альбомы, потому что стартовая страница галереи корректно отображалась на всех установленных мною языках. Почесал репу, поглядел на то, как выглядят ссылки, почему-то чистыми они быть перестали, потому что при клике на альбом ссылка выглядит так: http://test.handelmarkt.de/index.php?q=ru/gallery&g2_itemId=33. Ни разу не чистая ссылка. Зашел в настройки URL Rewrite, подправил url pattern. Он был таким: v/%path%, я изменил его на %language%/v/%path%. В принципе, заработало. Но! Во-первых, когда заходишь в альбомы, пропадает меню навигации. Блин, с какого перепуга? Посмотрел в настройках блоков, он должен отображаться везде. Во-вторых, я не могу из галереи изменить язык. Допустим, если я нахожусь где-то в галерее по адресу http://test.handelmarkt.de/index.php?q=ru/gallery&g2_itemId=33 с включенным русским языком, то ссылки на другие языки выглядят так: http://test.handelmarkt.de/de/index.php%3Fq%3Dru и http://test.handelmarkt.de/index.php%3Fq%3Dru для немецкого и английского соответственно (%3Fq%3Dru по идее должно соответствовать ?q=ru). При выборе языка по этим ссылкам выдает “страница не найдена”. Собственно, не знаю, куда дальше копать и что делать. Это моя вторая инсталяция с одними и теми же проблемами. Что делать? Все это безобразие воочую можно посмотреть на моем тестовом поддомене http://test.handelmarkt.de
Пхп инфо доступно тут:
http://test.handelmarkt.de/info.php
Информация о системе:
Gallery URL = http://test.handelmarkt.de/gallery2/main.php
Gallery version = 2.3 core 1.3.0
API = Core 7.54, Module 3.9, Theme 2.6, Embed 1.5
PHP version = 5.2.6-1+lenny3 cgi-fcgi
Webserver = Apache
Database = mysqli 5.0.51a-24+lenny2-log, lock.system=flock
Toolkits = Exif, Getid3, LinkItemToolkit, Thumbnail, Gd
Acceleration = none, none
Operating system = Linux server99.greatnet.de 2.6.26-2-686-bigmem #1 SMP Wed Aug 19 06:34:05 UTC 2009 i686
Default theme = matrix
gettext = enabled
Locale = en_US
Browser = Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14
Rows in GalleryAccessMap table = 32
Rows in GalleryAccessSubscriberMap table = 6
Rows in GalleryUser table = 2
Rows in GalleryItem table = 4
Rows in GalleryAlbumItem table = 2
Rows in GalleryCacheMap table = 0
Комментарии
Короче просто выключил модуль url rewrite в gallery2 и все заработало. Не совсем так, как хотелось бы в идеале, но вполне сносно. При смене языка просто выкидывает в корень галереи, но языки сменяются, как положено. Если у кого-то все же есть комментари на этот счет - был бы рад выслушать
Практически аналогичная ситуация...с тем отличием, что при включённых clean url всё работает, если по дефолту стоит en, который идёт без префикса (если ставлю дефолтным ru, то языки перестаю переключаться). Русский идёт с префиксом http://www.MySite.ru/ru. В настройка URL Rewrite галерии прписано %language%/v/%path%/ Галерея доступна по префиксу и ru и en в соответствующей локализации, но если заходить в альбом /photo с главной страницы галереи при активном русском языке, адрес имеет вид http://www.MySite.ru/index.php?q=ru/ru/v/photo/, с английский он так же добавляет префикс en (http://www.MySite.ru/en/v/photo/), хотя Drupal его не прописывает. Соответственно проблема в префиксе, который подставляет друпал, а Gallery его не воспринимает. Что-то мне подсказывает, что это можно легко исправить при помощи правки .htaccess, но что править?
htaccess из корня сайта
# (Automatically generated. Do not edit this section)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} gallery\_remote2\.php
RewriteCond %{REQUEST_URI} !/index\.php$
RewriteRule . - [L]
RewriteCond %{THE_REQUEST} /([a-z]{2}|[a-z]{2}_[A-Z]{2})/v/([^?]+)/(\?.|\ .)
RewriteCond %{REQUEST_URI} !/index\.php$
RewriteRule . /index.php?q=gallery&g2_language=%1&g2_path=%2 [QSA,L]
</IfModule>
# END Url Rewrite section
# BEGIN Url Rewrite section
# (Automatically generated. Do not edit this section)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /modules/gallery/gallery2/
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} gallery\_remote2\.php
RewriteCond %{REQUEST_URI} !/modules/gallery/gallery2/gallery$
RewriteRule . - [L]
RewriteCond %{HTTP:Authorization} (.+)
RewriteCond %{QUERY_STRING} !g2_authorization=
RewriteRule . %{REQUEST_URI}?g2_authorization=%1 [QSA]
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule . /modules/gallery/gallery2/modules/webdav/data/options/ [QSA,L]
RewriteCond %{THE_REQUEST} /modules/gallery/gallery2/([a-z]{2}|[a-z]{2}_[A-Z]{2})/v/([^?]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !/modules/gallery/gallery2/gallery$
RewriteRule . /modules/gallery/gallery2/gallery?g2_language=%1&g2_path=%2 [QSA,L]
RewriteCond %{THE_REQUEST} /modules/gallery/gallery2/d/([0-9]+)-([0-9]+)/([^/?]+)(\?.|\ .)
RewriteCond %{REQUEST_URI} !/modules/gallery/gallery2/gallery$
RewriteRule . /modules/gallery/gallery2/main.php?g2_view=core.DownloadItem&g2_itemId=%1&g2_serialNumber=%2&g2_fileName=%3 [QSA,L]
RewriteCond %{THE_REQUEST} /modules/gallery/gallery2/v/([^?]+)\.davmount(\?.|\ .)
RewriteCond %{REQUEST_URI} !/modules/gallery/gallery2/gallery$
RewriteRule . /modules/gallery/gallery2/gallery?g2_view=webdav.DownloadDavMount&g2_path=%1 [QSA,L]
RewriteCond %{THE_REQUEST} /modules/gallery/gallery2/w(/[^?]*)?(\?.|\ .)
RewriteCond %{REQUEST_URI} !/modules/gallery/gallery2/gallery$
RewriteRule . /modules/gallery/gallery2/gallery?g2_controller=webdav.WebDav&g2_path=%1 [QSA,L]
# RewriteBase /
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
#Rewrite current-style URLs of the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
</IfModule>
и из корня галереи
# (Automatically generated. Do not edit this section)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /modules/gallery/gallery2/
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} gallery\_remote2\.php
RewriteCond %{REQUEST_URI} !/modules/gallery/gallery2/main\.php$
RewriteRule . - [L]
RewriteCond %{THE_REQUEST} /modules/gallery/gallery2/([a-z]{2}|[a-z]{2}_[A-Z]{2})/v/([^?]+)/(\?.|\ .)
RewriteCond %{REQUEST_URI} !/modules/gallery/gallery2/main\.php$
RewriteRule . /modules/gallery/gallery2/main.php?g2_language=%1&g2_path=%2 [QSA,L]
</IfModule>
# END Url Rewrite section
С радостью выслушаю комментарии)