Har*_*M V 3 php dns cakephp cakephp-1.3
我正在建立一个门户网站,它将拥有不同的城市内容.
当有人来到网站我希望他们选择城市,然后继续
至
要么
可以使用单个数据库和cakephp的安装来完成吗?
是的,这是可能的.
基本上在您的DNS中,您必须允许*.site.com托管在一台计算机上.这样,无论您键入什么子域,机器都将是相同的.
一个例子dns记录:
* A 10.0.0.1
Run Code Online (Sandbox Code Playgroud)
然后在您必须放置的虚拟主机声明中
<VirtualHost *>
DocumentRoot /var/www/path_to_site
ServerName site.com
ServerAlias www.site.com *.site.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这种方式无论您键入什么,即something.site.com或city.site.com将被重定向到单个应用程序.
然后你只需从php解析主机(最好是在AppController中)并将子域转换为过滤器.
这有点抽象,但我就是这样做的.
编辑(对评论的回应): 它是如何构建系统的问题.基本上如果你有:
cite1.site.com
Run Code Online (Sandbox Code Playgroud)
在你的AppController中你可以有类似的东西:
class AppController extends Controller {
function beforeFilter(){
$host = explode('.', $_SERVER["HTTP_HOST"]);
$subdomain = $host[0];
Configure::write('city', $subdomain);
$this->City->getId($subdomain); //function in City model fetching City ID by city name
...
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,在此之后,它取决于您的应用程序架构以及如何处理这个城市.
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |