【发布时间】:2014-05-18 16:24:04
【问题描述】:
我有 4 个域,每个域都有不同的扩展名 (.com / .de / .se / .no)
我希望所有域都在我的服务器上加载相同的主网站文件夹,但根据扩展名,网站上的语言会发生变化。
域名不一样。例如。
ostemad.dk
cheeseflavour.com
fromage.fr
【问题讨论】:
标签: php .htaccess cross-domain
我有 4 个域,每个域都有不同的扩展名 (.com / .de / .se / .no)
我希望所有域都在我的服务器上加载相同的主网站文件夹,但根据扩展名,网站上的语言会发生变化。
域名不一样。例如。
ostemad.dk
cheeseflavour.com
fromage.fr
【问题讨论】:
标签: php .htaccess cross-domain
这里的问题是什么?您根本不需要任何 .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,并将其附加到查询中。第一个条件只是为了防止规则匹配无限次。
【讨论】: