apache - 使用 .htaccess 语言重定向和手动语言选择器显示根 URL 时重定向到子文件夹
问题描述
提前道歉,因为它已经是与 .htaccess 重定向相关的详尽问题列表。我的问题涉及一个由多种语言版本组成的客户网站,文件夹结构如下:
index.html (default german version)
— en
index.html
— fr
index.html
— nl
index.html
– css
– img
– js
说客户端现在要求我实现语言重定向,我通过将默认德语版本移动到它自己的子文件夹并将以下内容.htaccess
放在根目录中来实现。
RewriteEngine On
# Redirect to dutch language version
RewriteCond %{HTTP:Accept-language} ^(nl.*) [NC]
RewriteRule ^$ /nl/ [L,R=302]
# Redirect to french language version
RewriteCond %{HTTP:Accept-language} ^(fr.*) [NC]
RewriteRule ^$ /fr/ [L,R=302]
# Redirect to english language version
RewriteCond %{HTTP:Accept-language} ^(en.*) [NC]
RewriteRule ^$ /en/ [L,R=302]
# Redirect all other languages to english language version
RewriteCond %{HTTP:Accept-language} !^(nl|fr|de|en).* [NC]
RewriteRule ^$ /en/ [L,R=302]
# Redirect to german language version
RewriteCond %{HTTP:Accept-language} ^(de.*) [NC]
RewriteRule ^$ /de/ [L,R=302]
重定向本身可以正常工作,并且不会与每个页面上的手动语言选择器冲突。我剩下的唯一问题是浏览器中显示的 URL 包含相应语言的子文件夹,即:
mydomain.com/de/
mydomain.com/en/
mydomain.com/fr/
mydomain.com/nl/
虽然这适用于非默认语言(即 en、fr 和 nl),但在访问默认德语版本时,URL 应显示根地址:
mydomain.com
instead of
mydomain.com/de/
我需要如何修改我的.htaccess
文件以实现所需的行为?我正在从站点服务器上的一个子文件夹中测试站点,dev
因此建议的解决方案应该理想地使用mydomain.com
等等dev.mydomain.com
。
首先十分感谢。
解决方案
推荐阅读
- api - 如何通过在axios中传递基本身份验证来进行api调用
- flask - 烧瓶缓存给了我'AttributeError:'Cache'对象没有属性'app''
- flutter - 在颤动中仍然启用滚动时隐藏滚动条
- vue.js - 如何处理输入和大数据的 v-for?
- c++ - 这个实现的大 O 是什么
- python-3.x - PySimpleGui:如何在文本框中输入文本?
- authentication - 我使用哪个 Google OAuth2.0 令牌来唯一标识用户并让他们登录
- r - R studio:仅使用特定变量,但能够继续工作而不会丢失其他变量信息
- javascript - VueJS根据for循环中的变量加载SVG文件,使用v-html给出[object Module]
- php - 在准备好的语句下从 MySQLi 检索数据