基于Windows的apache服务器(wamp)上的cakephp和httpd.conf问题

Gnr*_*zik 5 apache mod-rewrite cakephp wamp

所以,我想知道是否有人可以澄清以下事件,并可能建议我如何解决这个问题.

对不起代码的奇怪着色

让我先解释一下这个设置.我安装了wamp服务器,它实际上位于一个高清,然后我的开发文件位于单独的高清.所以我添加了别名来访问特定的dev文件夹

在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>  
Run Code Online (Sandbox Code Playgroud)

以下是单独的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>  
Run Code Online (Sandbox Code Playgroud)

在我的E:/ Development/--- Projects-Full/PROJECT - BirthdayPlanner/trunk /我有我的cakephp目录和文件

这是问题所在

我的模式重写已打开,我的后续cakephp文件夹的htaccess文件如下,

cakephp的根

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

*\*应用程序

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

*\程序\ webroot的*

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

当我访问/ project_birthday_planner时,我得到以下错误404 Not Found

**Not Found**  
The requested URL /app/webroot/ was not found on this server.  
Run Code Online (Sandbox Code Playgroud)

如果我将DocumentRoot设置为我的cakephp文件夹或将cakephp文件夹和文件移动到初始DocucumentRoot文件夹,则所有文件都会启动并运行.

问题是 我如何解决这个问题,这是一个本质上是使用apache别名的东西或我错过了一些

这个设置应该通过VirtualHost解决吗?

非常感谢你

小智 5

你必须将Rewritebase指向正确的路径......见这里