Если возникла необходимость иметь версии сервера на различных языках, то логичнее всего было бы воспользоваться стандартным средством Apache - content negotiation, директивами типа AddLanguage и т.д. НО! Вы собираетесь объяснять каждому не слишком опытному пользователю, как ему в его браузере выставить язык и изменить приоритет уже существующих установок? По себе знаю - пользователь - он как потребитель, скорее пойдет в соседний магазин, чем будет что-то у себя менять.
Самый разумный выход, как мне представляется - это посадить каждый язык на свой виртуальный сервер. А для того, чтобы на каждом языке ссылки на картинки и другие странички выглядели идентично, можно использовать модуль перезаписи URL - mod_rewrite. Поясню на примере.
Пусть имеется файл index.html (на русском языке), и в нем имеются ссылка на main.html, а также картинка main.jpg, содержащая надпись на русском языке. Как сделать так, чтобы англоязычный вариант содержал такие же ссылки? Очень просто.
Надо добавить пару новых mime-types в httpd.conf: AddType text/html .en-html
AddType image/jpeg .en-jpg
Надо включить модуль mod_rewrite в Configuration для компиляции: Module rewrite_module mod_rewrite.o
Перекомпилировать httpd тоже не помешает.
Естественно, новый модуль надо сконфикурировать - опять же через httpd.conf: ‹VirtualServer url.виртуального.сервера:с_конкретным_языком›
RewriteEngine On #Дает добро на работу
RewriteRule (.*)/html$ /absolute/path/to/server/$1.en-thml
RewriteRule (.*)/jpg$ /absolute/path/to/server/$1.en-jpg
#Замена в контексте виртуального сервера имен с *.html и
# *.jpg на *.en-html и *.en-jpg соответственно.
‹/VirtualServer›
Теперь можно создать англоязычный вариант файлов index.html, main.html и main.jpg, назвав из соответственно index.en-html, main.en-html и main.en-jpg.
Вот, наверное, и все. Да, еще можно сделать что-то типа kill -HUP your_httpd_pid для того, чтобы все изменения возымели действие.
Самый разумный выход, как мне представляется - это посадить каждый язык на свой виртуальный сервер. А для того, чтобы на каждом языке ссылки на картинки и другие странички выглядели идентично, можно использовать модуль перезаписи URL - mod_rewrite. Поясню на примере.
Пусть имеется файл index.html (на русском языке), и в нем имеются ссылка на main.html, а также картинка main.jpg, содержащая надпись на русском языке. Как сделать так, чтобы англоязычный вариант содержал такие же ссылки? Очень просто.
Надо добавить пару новых mime-types в httpd.conf: AddType text/html .en-html
AddType image/jpeg .en-jpg
Надо включить модуль mod_rewrite в Configuration для компиляции: Module rewrite_module mod_rewrite.o
Перекомпилировать httpd тоже не помешает.
Естественно, новый модуль надо сконфикурировать - опять же через httpd.conf: ‹VirtualServer url.виртуального.сервера:с_конкретным_языком›
RewriteEngine On #Дает добро на работу
RewriteRule (.*)/html$ /absolute/path/to/server/$1.en-thml
RewriteRule (.*)/jpg$ /absolute/path/to/server/$1.en-jpg
#Замена в контексте виртуального сервера имен с *.html и
# *.jpg на *.en-html и *.en-jpg соответственно.
‹/VirtualServer›
Теперь можно создать англоязычный вариант файлов index.html, main.html и main.jpg, назвав из соответственно index.en-html, main.en-html и main.en-jpg.
Вот, наверное, и все. Да, еще можно сделать что-то типа kill -HUP your_httpd_pid для того, чтобы все изменения возымели действие.