Использование mod_vhost_alias с CakePHP (который использует mod_rewrite)
Я не апачский гуру. Но я хочу настроить свой сервер для массового виртуального хостинга, используя 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 ответ
Оказывается, все, что нужно было:
DirectoryIndex index.html index.php