Маршрутизация в статической html целевой странице

У меня есть маленькая целевая страница портфолио, основанная на js/css/html. Нет фреймворков /CMS, только чистый статический HTML. Точка входа index.html файл с контентом на английском языке.

Я хочу использовать переводы на моем сайте: index.ru.html, index.ua.htmlно я не хочу видеть *.html или же index.ua в адресной строке. Пользователь может изменить язык с помощью кнопок в верхней части моей страницы.

Как я могу проложить маршрут:

  1. http://mysite/en для отображения index.html - сначала зайти на сайт
  2. http://mysite/ru для отображения index.ru.html
  3. 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.

Эти правила требуют хорошего понимания регулярных выражений.

Другие вопросы по тегам