Маршрутизация в статической html целевой странице
У меня есть маленькая целевая страница портфолио, основанная на js/css/html. Нет фреймворков /CMS, только чистый статический HTML. Точка входа index.html
файл с контентом на английском языке.
Я хочу использовать переводы на моем сайте: index.ru.html
, index.ua.html
но я не хочу видеть *.html
или же index.ua
в адресной строке. Пользователь может изменить язык с помощью кнопок в верхней части моей страницы.
Как я могу проложить маршрут:
http://mysite/en
для отображенияindex.html
- сначала зайти на сайтhttp://mysite/ru
для отображенияindex.ru.html
http://mysite/ua
для отображенияindex.ua.html
?
Также я могу направить к определенному тегу div/section html: пользователь вводит http://mysite/ru/contacts
отобразить раздел контактов в index.ru.html
? Страница прокрутки также должна изменить URL-адрес... это реально или нет?
Может быть, мне нужно использовать микро-фреймворк для моих маленьких нужд?
РЕДАКТИРОВАТЬ:
Нашел хороший пример на этом сайте - http://www.even.lv/
3 ответа
Попробуйте добавить это в свой Root/.htaccess:
RewriteEngine On
RewriteBase /
RewriteRule ^en/?$ index.html [NC,L]
RewriteRule ^(ru|ua)$ index.$1.html [NC,L]
Это перенаправит "/en" в "/index.html" и "/ru" в "index.ru.html".
Возможно, вы используете шпион для начальной загрузки, вы можете перевести пользователя в отдельный раздел. если вы не хотите, чтобы URL был изменен, в этом случае вам поможет ajax. с помощью jQuery вы можете вызвать функцию выбора изменения jQuery("# language-select").change(function(){ // ваша логика попробуйте ajax здесь, чтобы изменить часть на странице. })
Сделайте каталоги для каждого языка и поместите соответствующие страницы внутри.
Единственный механизм, который позволяет вам пропустить полный URL-адрес, - это способность веб-сервера обслуживать страницу "по умолчанию", которая в вашем случае представляет собой index.html.
Точно так же для поддержки mysite/ru/contacts вам потребуется структура каталогов:
mysite/
ru/
contacts/
index.html
Другими словами, с чистыми html-страницами и без переписывания вы можете создать свою структуру с помощью каталогов вне webroot и создания множества отдельных страниц index.html.
Другой вариант - использовать правила перезаписи, подобные тем, которые доступны при использовании mod_rewrite и веб-сервера apache.
Эти правила требуют хорошего понимания регулярных выражений.