Yii - 参数化主机名不起作用

时间:2012-09-09 08:28:20

标签: php apache dynamic yii subdomain

我希望能够为在我的网站上注册的每家公司分配动态子域名。我知道Stackoverflow上已经多次询问过这个问题(例如Dynamic creation of subdomains),但这些解决方案对我不起作用。我可能在某处出现了其他问题,因此我创建了一个新线程。

我希望能够拥有这样的网址:

http://mycompany.testing.com/office

我的网站位于以下子目录中:

htdocs/office

我的urlManager设置如下:

'urlManager' => array(
    'urlFormat' => 'path',
    'showScriptName' => false,
    'rules' => array(
        'http://<company:\w+>.testing.com/office' => 'office',
        '/<action:\w+>' => '/index/<action>',
        '<controller:\w+>/<id:\d+>' => '<controller>/view',
        '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
        '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    ),
)

我的apache虚拟主机条目如下所示:

<VirtualHost *.testing.com>
        ...
    DocumentRoot "C:/xampp/htdocs/office"
    ServerName www.testing.com
    ServerAlias *.testing.com
    <Directory "C:/xampp/htdocs/office">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

我在Windows 127.0.0.1 *.testing.com文件中添加了hosts。我的htaccess文件看起来像这样:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

我已经尝试过遵循Yii指南(这表明这是一个非常简单的任务),但我想我可能搞砸了应用程序本身以外的东西。

任何意见都将受到高度赞赏: - )

祝你有个美好的一天。

1 个答案:

答案 0 :(得分:0)

默认情况下,Windows主机文件不接受通配符域。但是,有一个alternative for hosts file

这只是你的测试服务器,最简单的解决方案是在你的主机文件中添加一些测试子域,这应该有效(mycompany1.testing.com,mycompany2.testing.com ......)。