在静态 html 着陆页中路由
Routing in static html landing page
我有一个基于 js/css/html 的小型投资组合登陆页面。没有 frameworks/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/
可能正在使用 bootstrap 滚动间谍,您可以将用户带到特定的部分。如果您不希望 url 发生变化,那么 ajax 会帮助您。使用 jQuery 你可以触发 select 改变函数 jQuery("#language-select").change(function(){ // 你的逻辑 try ajax 在这里更改页面上的部分。})
为每种语言制作目录,并将相关页面放入其中。
唯一允许您省略完整 url 的机制是 Web 服务器提供 "default" 页面的能力,在您的情况下是 index.html
出于同样的原因,要支持 mysite/ru/contacts,您需要一个目录结构:
mysite/
ru/
contacts/
index.html
换句话说,使用纯 html 页面并且不使用重写,您可以使用 webroot 之外的目录并创建许多单独的 index.html 页面来完成您的结构。
另一种选择是使用重写规则,例如使用 mod_rewrite 和 apache 网络服务器可用的规则。
这些规则需要对正则表达式有很好的工作理解。
尝试将其添加到您的 Root/.htaccess 中:
RewriteEngine On
RewriteBase /
RewriteRule ^en/?$ index.html [NC,L]
RewriteRule ^(ru|ua)$ index..html [NC,L]
这会将“/en”重定向到“/index.html”,将“/ru”重定向到"index.ru.html"。
我有一个基于 js/css/html 的小型投资组合登陆页面。没有 frameworks/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/
可能正在使用 bootstrap 滚动间谍,您可以将用户带到特定的部分。如果您不希望 url 发生变化,那么 ajax 会帮助您。使用 jQuery 你可以触发 select 改变函数 jQuery("#language-select").change(function(){ // 你的逻辑 try ajax 在这里更改页面上的部分。})
为每种语言制作目录,并将相关页面放入其中。
唯一允许您省略完整 url 的机制是 Web 服务器提供 "default" 页面的能力,在您的情况下是 index.html
出于同样的原因,要支持 mysite/ru/contacts,您需要一个目录结构:
mysite/
ru/
contacts/
index.html
换句话说,使用纯 html 页面并且不使用重写,您可以使用 webroot 之外的目录并创建许多单独的 index.html 页面来完成您的结构。
另一种选择是使用重写规则,例如使用 mod_rewrite 和 apache 网络服务器可用的规则。
这些规则需要对正则表达式有很好的工作理解。
尝试将其添加到您的 Root/.htaccess 中:
RewriteEngine On
RewriteBase /
RewriteRule ^en/?$ index.html [NC,L]
RewriteRule ^(ru|ua)$ index..html [NC,L]
这会将“/en”重定向到“/index.html”,将“/ru”重定向到"index.ru.html"。