我有4个域名,每个域名都有不同的扩展名(.com/.de/.se/.no)
我希望所有域在我的服务器上加载相同的主网站文件夹,但根据扩展名,网站上的语言会发生变化。
域名不一样。
ostemad.dk
cheeseflavour.com
fromage.fr
这里的问题是什么?您根本不需要任何 .htaccess 样式文件。实际上,无论如何都应该尽可能避免这些文件:它们会大大降低服务器速度,容易出错且难以调试。请改用真实的服务器配置部分:更加清晰和安全。
您只需为每个域创建一个虚拟主机,并为每个域分配相同的文档根目录。
对于语言切换,您可以依靠 phps 超全局变量并根据请求主机进行切换,或者更优雅地通过 apaches mod_setenvif在虚拟主机定义中设置环境变量。
您可以使用 %1
到 %9
从最后一个条件获取捕获组。你可以做这样的事情:
RewriteCond %{QUERY_STRING} !lang=
RewriteCond %{HTTP_HOST} .(dk|com|fr)$
RewriteRule ^(.*)$ $1?lang=%1 [QSA,L]
这会从站点名称中选择 dk、com 和 fr,并将其附加到查询中。第一个条件只是为了防止规则无限次匹配。