Как задавать многоязычность в URL
Что из себя представляет URL на многоязычном сайте, понятно. Это в простом случае site.com/ru/page/123, в сложном site.ru/page/123 или ru.site.com/page/123.
Рассмотрим только простой случай. Сразу возникает вопрос, как обзывать ссылки? Можно задать href="/{{langCode}}/page/{{item.id}}", но сразу возникает проблема откуда взять langCode. Придется пихать его в глобальную область видимости, что не хотелось бы. Более предпочтительный вариант: href="/page/{{item.id}}" Но тогда другой вопрос, как это обрабатывать в роутере? Пока терзаю ui-Router но еще не разобрался что там к чему. Что посоветуете? |
Добавка по теме:
Пытаюсь перейти в режим HTML5, записал $locationProvider.html5Mode(true).hashPrefix('!'); и в .htaccess <IfModule mod_rewrite.c> RewriteEngine on # if a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] # otherwise forward it to index.html RewriteRule ^(.*) /#!/$1 [NC,L] </IfModule> Либо так (результат такой же) RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*) /#!/$1 [NC,L] Редирект вроде бы работает, т.е. ни 400 ни 500 ошибок не возникает, но в коде страницы хаос. В HEAD кусок ангуляровского кода, а все подключаемые скрипты переместились в BODY. При этом сервер подгружает их не из корневого каталога, а относительно пути из строки адреса, который принял за базовый |
Цитата:
|
А ее и не надо отсылать. Смысл в том, чтобы сервер обычный УРЛ преобразовывал в УРЛ с хэшем и отсылал его таким клиенту, а клиент опять преобразует в нормальный УРЛ.
P.S. В общем, основная проблема в том, что все ссылки на ресурсы принимают вид site.ru/адрес по которому пришел пользователь/css/main.css Хотя на самом деле все лежит в корне site.ru/css/main.css |
Часовой пояс GMT +3, время: 11:06. |