我在让 zend 框架与我的服务器上的子域很好地配合时遇到问题。我在 ubuntu 11.10 上运行了一个 LAMP 堆栈,我还使用了一个动态 dns 服务,我在其中定义了我的区域记录。所以基本上我的 dns 设置如下:
DNS:在一家公司注册,并将我的域名指向此处的动态 DNS 名称服务器。
使用动态 DNS 主机,我定义了 3 个 A 类型的区域记录:
mydomain.com 000.00.0.0
www.mydomain.com 000.00.0.0
*.mydomain.com 000.00.0.0 <-- wildcard to catch all subdomains
阿帕奇设置:
在/etc/apache2/sites-available
:: /sites-enabled 我有我的默认设置mydomain
和另一个虚拟主机mysubdomain.mydomain.com
/var/www
: 我有 mydomain.com/public /var/www/public 文件夹作为它的文档根目录
/var/www/mysubdomain
:我mysubdomain.mydomain.com
使用/var/www/mysubdomain/public
文件夹作为它的根
我认为所有这些设置都是正确的,因为我正确地提供了任何请求www.mydomain.com
,并且我也www.mysubdomain.mydomain.com
正确地提供了任何请求。
但是当我发出类似的请求www.mysubdomain.mydomain.com/:controller
或www.mysubdomain.mydomain.com/:controller/:action
从服务器发出 404 Not Found 并显示以下消息时:
The requested URL /controller/action was not found on this server.
我认为这是我的 .htaccess 的问题,它是按以下方式设置的
我的 .htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
问题是,当我当前尝试访问的应用程序被设置并作为正常域访问时,www.mysubdomain.com
一切正常。