如何为语言子域版本重写.htaccess?

时间:2017-01-21 14:59:14

标签: php apache .htaccess mod-rewrite

我的项目需要语言版本,出于搜索引擎优化的目的,我不想为语言创建$ _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$

我不知道如何完成其​​余的工作..

如果可以,请提供帮助

1 个答案:

答案 0 :(得分:1)

这样做的方法就是让所有语言子域都由同一个网站提供服务。不需要mod_rewrite。您可以在php中检查HTTP_HOST以查看正在访问的内容。将它们全部放在ServerAlias中,或者只使用通用ServerAlias *.example.com

确保同时设置UseCanonicalName off,以便Apache生成的任何自引用URL将使用访问过的任何主机,而不是删除语言子域。 Reference here

如果您不能这样做,请告诉我们您的托管设置,只要它在同一台服务器上,就可以通过重写完成。