将mod_vhost_alias与CakePHP一起使用(使用mod_rewrite)

时间:2010-12-15 16:08:56

标签: apache cakephp mod-rewrite mod-vhost-alias

我不是阿帕奇大师。但我想使用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>

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

1 个答案:

答案 0 :(得分:1)

原来所需要的只是:

DirectoryIndex index.html index.php