Использование mod_vhost_alias с CakePHP (который использует mod_rewrite) - PullRequest
1 голос
/ 15 декабря 2010

Я не гуру апачей.Но я хочу настроить свой сервер для массового виртуального хостинга, используя 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 настроен на получение% 1 из URL-адреса, чтобы узнать, на какой каталог указывать:

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

Но когда я указываю своему браузеру на приложение для торта, я получаю ошибку страницы не найдена.Я подозреваю, что это как-то связано с mod_rewrite в файле .htaccess.Вот полные конфиги для обоих:

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 Ответ

1 голос
/ 15 декабря 2010

Оказывается все, что нужно было:

DirectoryIndex index.html index.php
...