【问题标题】:CakePHP - I keep getting 500 Internal Server Error messages, with the occasional 404 when trying to fixCakePHP - 我不断收到 500 条内部服务器错误消息,尝试修复时偶尔会出现 404
【发布时间】:2018-02-08 10:11:53
【问题描述】:

我使用 cakePHP 已经有一段时间了,但偶尔会出现一个错误,我一直无法找到解决方法。

问题是,在某些服务器中 cakephp 似乎返回 500 内部服务器错误,即使相同的软件在大多数其他服务器中运行也是如此。这已成为一个问题,因为显然该错误现在出现在 GoDaddy 服务器中,作为最常见的服务器,我希望我们的许多客户都会使用该服务器。我也知道这不是编码问题,因为我们的软件和从here 下载的新的空 cakePHP 包都会出现错误。

也就是说,我已经尝试更改 .htaccess 文件以适应 here 的描述,但无济于事。到目前为止,用于测试的 .htaccess 文件(无代码,应该只输出 cakephp 发行说明页面)安装如下所示:

/caketest/ 上的那个(这是我要安装的子文件夹):

<IfModule mod_rewrite.c>
     Options +FollowSymlinks
   RewriteEngine on
     # Rewrite Base: The Base Path For Domain
     RewriteBase /

   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]

</IfModule>

/caketest/app/上的那个:

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

/caketest/app/webroot/上的那个:

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

通过更改默认 cakephp .htaccess 文件,500 Internal Server Error 页面消失。但是,现在我得到一个 404 页面:

在此服务器上找不到请求的 URL /app/webroot/。

然后,我尝试更改 /caketest/ .htaccess 文件以匹配它所在的子文件夹:

<IfModule mod_rewrite.c>
     Options +FollowSymlinks
   RewriteEngine on
     # Rewrite Base: The Base Path For Domain
     RewriteBase /caketest/

   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]

</IfModule>

但我又开始收到 500 Internal Server Error 问题。我整个上午都在网上寻找可能的解决方案来解决这个问题,但我似乎找不到任何解决方案。任何线程要么没有得到答复,要么具有我已经尝试过的相同解决方案,但无济于事。我已经无能为力了,谁能帮忙解决这个问题?

【问题讨论】:

  • 500 错误意味着您需要查看 Apache 错误日志。那里会详细说明。
  • 我已经查看了 /logs/ 并没有提及 2015 年 1 月文件中的任何错误。
  • 你的意思是 /tmp/logs,对吧?
  • 我正在处理的服务器似乎在 /tmp 中没有 /logs/ 文件夹。在这种情况下,它不是一个 Godaddy 服务器,而是该公司的主服务器几个月来一直存在同样的问题(我们忽略了认为它只是这个服务器)。我对服务器架构及其工作方式不是很了解,我只是在其中编写代码,如果我在这里没有走正确的路,我很抱歉:\

标签: apache .htaccess cakephp mod-rewrite cakephp-2.3


【解决方案1】:

只需保留默认的 .htaccess。不多也不少。

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

它将删除 statusCode:500,您可以继续..

【讨论】:

    猜你喜欢
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    相关资源
    最近更新 更多