【发布时间】: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