CakePHP网站路径访问问题

时间:2011-10-17 08:36:10

标签: php apache .htaccess cakephp

我在我的CakePHP 1.3上使用LAMP Environment作为我的一个项目,突然之间我的网站路径问题让我感到震惊:

它是这样的:

http://localhost/project/app/webroot/index.php/mydocuments/

到目前为止它正好像:

http://localhost/project/mydocuments/

但我真的不知道,改变了什么设置导致这个路径问题。

我有3个默认的.htaccess文件,其中CakePHP提供的文件夹结构如下,一个htaccess文件位于根文件夹(app文件夹外),一个htaccess文件进入app文件夹,另外一个进入app / webroot文件夹就像你一样这里描述的,但它的路径仍然是问题..

2 个答案:

答案 0 :(得分:3)

我假设您使用Apache,而您的Apache docroot指向您的app / webroot文件夹。

您需要在webroot目录中使用.htaccess文件才能在Apache上运行。

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

如果您的Apache docroot是您的应用程序根目录(不推荐),您需要在您的应用程序根目录中使用另一个.htaccess文件:

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

希望这有帮助!

答案 1 :(得分:1)

我认为wrdevos在说什么。最重要的是,还要确保在documentroot的Directory指令下(在Apache配置中)选项 AllowOverride 设置为All,如下所示:

<Directory "/var/www/html">
    AllowOverride All
    # Other options should follow...
</Directory>

在大多数系统上,它默认为AllowOverride None,它不允许运行.htaccess文件。