【发布时间】:2013-04-02 16:32:59
【问题描述】:
我正在用 Yii 做一个网站,它由不同的模块组成,应该从不同的顶级域访问。因此,我需要每个基础都依赖于模块。此外,还应检查国家代码并将其作为获取参数发送。类似this:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^.]+)\.micrositedomain\.com$
RewriteRule ^(.*)$ http://bigsite.com/microsite/$1?lang=en [QSA]
RewriteCond %{HTTP_HOST} ^([^.]+)\.micrositedomain\.es$
RewriteRule ^(.*)$ http://bigsite.com/microsite/$1?lang=es [QSA]
RewriteCond %{HTTP_HOST} ^([^.]+)\.micrositedomain2\.com$
RewriteRule ^(.*)$ http://bigsite.com/microsite2/$1?lang=en [QSA]
RewriteCond %{HTTP_HOST} ^([^.]+)\.micrositedomain2\.es$
RewriteRule ^(.*)$ http://bigsite.com/microsite2/$1?lang=es [QSA]
但是,我不太确定在哪里处理这个问题。它显然应该在根目录中的 .htaccess 中,但我不知道如何将它与已经存在的 .htaccess 混合:
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
另外,我很确定我的托管管理员应该将每个域(www.micrositedomain.com、www.micrositedomain2.com...)指向 bigsite.com 根目录,而不是每个模块,但我真的不能保证。
我应该按照哪个步骤来完成?
tl;博士
对于那些赶时间的人,我想:
- 将来自不同域/国家代码的 url 重写为单个域,并传递这些参数。
- 告诉我的主机管理员域名应该指向哪里。
在我的情况下你会如何解决这个问题?
【问题讨论】:
标签: php .htaccess mod-rewrite url-rewriting yii