我希望能够为在我的网站上注册的每家公司分配动态子域名。我知道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指南(这表明这是一个非常简单的任务),但我想我可能搞砸了应用程序本身以外的东西。
任何意见都将受到高度赞赏: - )
祝你有个美好的一天。
答案 0 :(得分:0)
默认情况下,Windows主机文件不接受通配符域。但是,有一个alternative for hosts file。
这只是你的测试服务器,最简单的解决方案是在你的主机文件中添加一些测试子域,这应该有效(mycompany1.testing.com,mycompany2.testing.com ......)。