jsp - 我们想为 JSP 页面的 i18n 使用 JSTL FMT 标签,但将语言代码文件夹保留在 url 中以用于 SEO 目的
问题描述
我们使用 JSP fmt 标签国际化了 JSP 页面。我们还想在客户端浏览器的 cookie 中设置语言,以维护所有 jsp 页面的语言。但是为了为我们的语言获得良好的 SEO,我们需要维护http://website.com/en URL,我们有英语的“/en/”和德语的“/de”以及“/it” " 表示我们网址中的意大利语。如果我使用标准方法,我将有一个像这样的网址“ http://website.com/?lang=en ”,谷歌不推荐。我们希望在 url 之后保留带有语言代码的“文件夹”。我不确定 servlet 过滤器是否会起作用,或者最好的解决方案会是什么样子。
我们正处于测试标准方法的阶段,但我们总是在 url 中得到“?lang =”,我们试图弄清楚我们可以做些什么来让它看起来像一个具有不同语言文件夹的普通网站。
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%--<fmt:setLocale value="en" /> --%>
<fmt:setLocale value="${param.lang}" />
<fmt:setBundle basename="roma-vaticano_i18n" />
<html lang="${param.lang}">
...
<!--FIRST BLOCK-->
<div class="card-overview">
<div class="grid-container full">
<div class="grid-x grid-margin-x">
<div class="cell large-8 medium-12 small-12">
<figure class="card-overview--thumb"><a href="http://www.roma-vaticano.com/en/hotel-highlights/rome/"><img src="http://www.roma-vaticano.com/assets/images/rome-hotel-overview-thumb.jpg" alt=""></a></figure>
</div>
<div class="cell large-4 medium-12 small-12">
<div class="card-overview--content">
<h2 class="card-overview--content--title"><a href="http://www.roma-vaticano.com/en/hotel-highlights/rome/"><fmt:message key="Hotel.Highlights.overview.card.overview.title1"/></a></h2>
<p><fmt:message key="Hotel.Highlights.overview.card.overview.text1"/></p>
</div>
</div>
</div>
</div>
</div>
...
预期的结果是该页面将被翻译成英文,因为我们只有用于测试的英文资源包,但在 URL 上使用了“?lang=”扩展名,这是可以的。但如前所述,我们希望在 url 之后有不同的国家文件夹,如“en,de,it”,以便在搜索引擎上获得更好的 SEO。
解决方案
推荐阅读
- java - OpenAM OpenDJ dockerisation 问题:无法使用旧数据源重新部署
- sql - 使用oracle在一个表中根据最大值连接三个表
- css - CSS:在行固定位置设置3个项目列表
- angular - 将 FormControl 传递给子组件 - 未指定名称的表单控件没有值访问器
- html - .htaccess 中的 Access-Control-Allow-Origin 在子目录中不起作用
- docker - 为什么 docker 为所有容器提供不同范围的 IP 地址以及如何将其设为默认值?
- c# - 使用 Api json 函数 mvc 解析值时遇到意外字符
- excel - 按日期数据透视表列分组
- android - Firebase 消息服务新令牌
- android - 布局预览与模拟器或手机不匹配