Cakephp项目无法在服务器上运行

时间:2015-02-13 09:08:57

标签: .htaccess cakephp

目前正在处理一个项目并已完成。在当地工作正常。但是当上传到服务器时。它不应该工作。 CSS和JS以及图像没有链接。我检查了项目文件夹中的所有.htaccess文件,看起来很好。这些是.htaccess文件中的代码

在root

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

在应用

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

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

自上传到服务器后,这些文件仍然相同。我还经历了一些文章和问题,以确保我没有弄乱.htaccess文件。然后我发现了这个问题。

在本地,当我试图在本地打开/localhost/project/app/Controller/UsersController.php时,它返回错误,因为它应该是

但是当我在服务器上尝试相同的时候 实际上似乎访问了该页面。由于它的控制器没有找到输出,但我可以确定直接访问控制器。我无法弄清楚正在经历什么样的问题。对此我很陌生。任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:0)

Cake在tmp文件夹下创建tmp文件。您必须向此文件夹授予读/写权限。在您的代码生效后,请对您的tmp文件夹授予777权限,并尝试删除子文件夹下的所有这些文件。它可能会工作,请分享您的结果。你会在app文件夹下找到tmp文件夹。

答案 1 :(得分:0)

您的问题出现在in root .htaccess中,应该是这样的:

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

答案 2 :(得分:0)

该项目现在可以使用(必须联系支持以启用mod_rewrite)。我启用了

Configure::write('App.baseUrl', env('SCRIPT_NAME'));
在config / core.php中的

问题是没有在服务器中启用mod_rewrite。因此,在核心中启用它可以支持项目在没有mod重写的情况下工作。

谢谢 http://wwdj.wijndaele.com/getting-started-with-cakephp-without-mod_rewrite/

答案 3 :(得分:0)

我有同样的问题,它在localhost上工作但在服务器上没有,它抛出404错误。 这是因为我已将我的网站上传到服务器根目录的子目录中。我做了很多事情让它工作但是因为我在根文件夹中使用htaccess我在根级别找不到解决方案。

最后我找到了一个解决方案,编辑了现有的cakephp根文件夹的htaccess,并在RewriteEngine之后添加了“RewriteBase”。

完整代码:

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

如果我的项目出现在'xyz.com/one/two/cake/'中,那么RewriteBase就是Rewritebase /one/two/cake/

它对我有用。