我们最近将不同语言的页面移到了我们网站上的文件夹中。
例如。
example.com/uk
example.com/de
example.com/ie
当用户登陆example.com时,会看到一个页面来选择他们的语言。
出于搜索引擎优化/书签的目的,我希望将访问前一页的所有访问量重定向到英国版本。
例如
example.com/page1.php
将重定向到
example.com/uk/page1.php
但是与此同时,example.com根目录上的所有语言都将显示为语言选择器。
有什么想法吗?
谢谢
答案 0 :(得分:0)
晚些时候参加聚会,但是我想我可以为将来的来访者解答。我的例子是这样的:
在为我们的业务添加新的行业后,我们将域移到了子域。这是一个NextJS SPA应用程序。条件是,对https://example.com的任何请求都应被路由到https://subdomain.example.com,但与此同时,我们必须在https://example.com上显示主页。为了实现这一点,因为nginx按照添加位置块的顺序应用逻辑,所以我必须按以下顺序应用逻辑:
将索引路由到正确的位置
location / {
root /home/ubuntu/projects/tbs/front-end/home-page/;
index index.html index.htm index.nginx-debian.html;
}
由于我们的结构是这样的:https://subdomain.example.com/my-product-name-and-some-random-text,其中带有连字符的任何内容都可能是产品标签,因此我必须确保在检查产品之前,我们必须将任何其他网址重定向到各自的网址页面。位置块为:
location /products {
return 301 https://subdomain.example.com$request_uri;
}
location /about {
return 301 https://subdomain.example.com$request_uri;
}
location /contact {
return 301 https://subdomain.example.com$request_uri;
}
最后,我们必须添加一个正则表达式以使用连字符来路由其他任何东西,并假定它是一个产品
location ~ ^/([a-zA-Z0-9]*-[a-zA-Z0-9]*)+$ {
return 301 https://subdomain.example.com$request_uri;
}
我确信可能会有比我们使用的解决方案更好的解决方案,但是考虑到我们对nginx的经验较少,这是一个很好的解决方法。如果有人有更好的解决方案,我很想听听,以便我们可以采取更好的方法。