1

我不是 apache 大师。但是我想使用 CakePHP 配置我的服务器以进行大规模虚拟主机。我们的想法是,我们将能够根据目录位置轻松设置同一应用程序的多个版本:

production.domain.com
testv1.domain.com
etc...

所以我知道我的 mod_vhost_alias 工作得很好。我设置了一个基本目录,在其中添加了一个测试 index.html 文件 (/var/www/htdocs/cake/test/webroot)。当我将浏览器指向该位置 (test.domain.com) 时,index.html 会显示在浏览器中。我的 vhost 配置为从 URL 中提取 %1 以了解要指向的目录:

VirtualDocumentRoot /var/www/htdocs/cake/%1/webroot

但是当我将浏览器指向蛋糕应用程序时,我得到一个找不到页面的错误。我怀疑它与 .htaccess 文件中的 mod_rewrite 有关。以下是两者的完整配置:

mod_vhost_alias (in .conf file)

<VirtualHost *:80>
ServerAlias *
UseCanonicalName Off
VirtualDocumentRoot /var/www/htdocs/cake/%1/webroot
<Directory /var/www/htdocs/cake/%1/webroot>
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>

.htaccess (in webroot - default as it comes from CakePHP)

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

任何想法如何让他们一起工作?

4

1 回答 1

1

原来它所需要的是:

DirectoryIndex index.html index.php
于 2010-12-15T18:03:03.427 回答