我的项目需要语言版本,出于搜索引擎优化的目的,我不想为语言创建$ _SESSION,而是为语言版本使用子域名。让我说俄语版的网站看起来像:
ru.example.com
我想在用户访问http://ru.example.com .htaccess文件时加载位于网站根目录中的索引文件。 但这并不是全部 !例如,如果用户访问:http://ru.example.com/products/ .htaccess文件以加载位于http://example.com/products/的索引文件
这可能以某种方式完成吗?基本上我希望当服务器在url中加载文件时,以某种方式忽略子域名称ru。
到目前为止,我有这个:
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{HTTP_HOST} ^ru\.example\.com$
我不知道如何完成其余的工作..
如果可以,请提供帮助
答案 0 :(得分:1)
这样做的方法就是让所有语言子域都由同一个网站提供服务。不需要mod_rewrite。您可以在php中检查HTTP_HOST以查看正在访问的内容。将它们全部放在ServerAlias
中,或者只使用通用ServerAlias *.example.com
。
确保同时设置UseCanonicalName off
,以便Apache生成的任何自引用URL将使用访问过的任何主机,而不是删除语言子域。 Reference here
如果您不能这样做,请告诉我们您的托管设置,只要它在同一台服务器上,就可以通过重写完成。