Проблемы cakephp & httpd.conf на сервере Apache на базе Windows (Wamp) - PullRequest
5 голосов
/ 25 февраля 2010

Итак, мне было интересно, если кто-нибудь мог бы прояснить следующий случай и, возможно, предложить, как я мог бы справиться с этим.

извините за странную раскраску кода

Позвольте мне сначала объяснить настройку. У меня установлен wamp-сервер, и он физически расположен на одном жестком диске, а затем мои файлы разработки находятся на отдельном жестком диске. Поэтому я добавил псевдоним для доступа к определенной папке разработчика

в httpd.conf У меня есть следующее

ServerRoot D:/Program Files/wamp/bin/apache/apache2.2.11  
Listen 80  
ServerName localhost:80  
DocumentRoot D:/Program Files/wamp/www  
<Directory />  
    Options FollowSymLinks  
    AllowOverride None  
    Order deny,allow  
    Deny from all  
</Directory>  
<Directory D:/Program Files/wamp/www/>  
    Options Indexes FollowSymLinks  
    AllowOverride all  
    Order Allow,Deny  
    Allow from all  
</Directory>  

следующее находится в отдельном файле conf и включено в httpd.conf

Alias /project_birthday_planner "E:/Development/--- Projects-Full/PROJECT - BirthdayPlanner/trunk/"  
<Directory E:/Development/--- Projects-Full/PROJECT - BirthdayPlanner/trunk/>  
    Options Indexes FollowSymlinks MultiViews  
    AllowOverride All  
    Order allow,deny  
    Allow from all  
</Directory>  

в моем E: / Development / --- Projects-Full / PROJECT - BirthdayPlanner / trunk / у меня есть каталоги и файлы cakephp

вот проблема

мой режим перезаписи включен, и мои файлы htaccess для следующих папок cakephp выглядят следующим образом,

корень кепки

<IfModule mod_rewrite.c>  
    RewriteEngine on  
    RewriteBase /  
    RewriteRule ^$ /app/webroot/ [L]  
    RewriteRule (.*) /app/webroot/$1 [L]  
</IfModule>  

* \ приложение *

<IfModule mod_rewrite.c>  
    RewriteEngine on  
    RewriteBase /  
    RewriteRule ^$ /webroot/ [L]  
    RewriteRule (.*) /webroot/$1 [L]  
</IfModule>  

* \ приложение \ Webroot *

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

когда я получаю доступ к / project_birthday_planner я получаю следующую ошибку 404 Не найдено

**Not Found**  
The requested URL /app/webroot/ was not found on this server.  

Если я установлю DocumentRoot в свою папку cakephp или переместу папки и файлы cakephp в исходную папку DocucumentRoot, все запустится и заработает.

вопрос Как я могу решить эту проблему, это то, что по сути приходит с использованием Apache Alias или я что-то пропустил

Должна ли эта настройка решаться через VirtualHost?

заранее большое спасибо

1 Ответ

5 голосов
/ 25 февраля 2010

Вы должны указать Rewritebase на правильный путь ... см. здесь

...