2012-06-12 4 views
1

Я разрабатываю веб-приложение cakePHP (используя MAMP как localhost), и я просто настроил виртуальные хосты в корень моего проекта.Виртуальный хост не перенаправляет правильно с помощью CakePHP и MAMP

Мои /etc/hosts является

127.0.0.1 localhost 
127.0.0.1 altair.loc 

И мой httpd.conf

NameVirtualHost * 
<VirtualHost *> 
    DocumentRoot "/Volumes/Macintosh HD/Users/robotThree/www/" 
    ServerName localhost 
</VirtualHost> 
<VirtualHost *> 
    DocumentRoot "/Volumes/Macintosh HD/Users/robotThree/www/ALTAIR/altair/" 
    ServerName altair.loc 
</VirtualHost> 

С этим я могу получить доступ к моему проекту, набрав http://altair.loc и все контроллеры и действия отлично работает (т.е. http://altair.loc/controller/action).

Проблема в том, что все файлы, к которым обращаются, статически терпят неудачу. Например, http://altair.loc/css/main.css не работает, но работает, если я нахожу http://altair.loc/ALTAIR/altair/css/main.css, как если бы виртуальный хост не был настроен.

Вы знаете, что может случиться? Заранее спасибо

ответ

1

Решено. В httpd.conf необходимо проверить, что Override для всех, это был .htaccess и mod_rewrite вопрос:

<Directory /> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
</Directory> 
+0

вы также должны всегда путь вниз к корневой директории: 'DocumentRoot«/.../www/ALTAIR/altair/webroot/"' – mark

+0

В ALTAIR и altair есть файлы .htaccess для перенаправления на webroot. Мне это не нравится, но это способ, который предлагает трюк. – davidgnin

+0

нет, его нет. они существуют только в том случае, если вы не используете виртуальные хосты (это, конечно, по умолчанию). если вы это сделаете, вам не нужны они вообще (за исключением, может быть, для одного в веб-роуте, который также может быть добавлен в директиву vhost сразу). ненужные служебные данные для вызова другого файла htaccess. – mark

Смежные вопросы