1

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

我希望能够拥有这样的 URL:

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>

127.0.0.1 *.testing.com在我的 Windowshosts文件中添加了。我的 htaccess 文件如下所示:

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

我曾尝试遵循 Yii 指南(这表明这是一项非常简单的任务),但我认为我可能在应用程序本身之外搞砸了一些东西。

任何输入将不胜感激:-)

祝你有美好的一天。

4

1 回答 1

0

默认情况下,Windows 主机文件不接受通配符域。但是,主机文件有另一种选择。

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

于 2012-10-25T12:17:56.780 回答