在Google Cloud中的centos上运行的Code Igniter上的内部服务器错误500

时间:2019-06-13 16:35:58

标签: php apache .htaccess mod-rewrite

我正在运行一个基于CI的Web应用程序,该应用程序可以在旧服务器上正常运行,但是我正在将其迁移到Google云上的centos 7 / cwp实例。

设置好我通常如何设置CI后,我收到HTTP 500和内部服务器错误。

我怀疑它与.htacess有关,但我不知道出了什么问题。任何帮助表示赞赏!

它在Google云实例上的centos 7上运行CWP。我所做的事情:

  1. 启用了mod_rewrite
  2. 已安装php-mysqli
  3. 针对mysql和mysqli扩展名编辑了php.ini
  4. 创建了一个新的.htaccess
  5. 在Apache日志中似乎看不到任何错误

以下是旧服务器上当前的.htaccess文件:

# 301 Redirect URLs.
Redirect 301 /www.example.com/example/about-us https://www.example.com/home/pages/about-us

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

//RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
//RewriteRule . index.php
RewriteCond %{HTTPS} off
//RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9] {32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

</IfModule>

<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>

<Files 403.shtml>
order allow,deny
allow from all
</Files>

RewriteCond %{HTTP_HOST} ^\*\.example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.\*\.example\.com$
//RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "https\:\/\/www\.example\.com" [R=301,L]

RewriteCond %{HTTP_HOST} ^example.com$
//RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "https\:\/\/www\.example\.com\/" [R=301,L]

当我使用上述.htaccess(与//旧的cpanel modrewrites一起使用时,我会收到内部服务器错误消息),当我删除.htaccess或用其他或标准CI .htaccess替换.htaccess时,我只会得到HTTP 500错误。

1 个答案:

答案 0 :(得分:0)

  

使用//旧的cpanel modrewrites,我收到内部服务器错误消息

您不能使用//来注释.htaccess中的配置行-这当然可以解释您的即时500错误。您需要使用#,如配置文件第一行所示。

//RewriteRule . index.php

您不应注释掉此行-如果没有此CI,将无法路由您的URL。

  

当我删除.htaccess或用其他或标准CI .htaccess替换.htaccess时,我只会收到HTTP 500错误。

这可能是一个不同的问题,因此我们需要查看您正在使用的精确.htaccess文件。

顺便说一句,“内部服务器错误”和“ HTTP 500错误”是同一回事-您似乎是在暗示它们是不同的吗?

如注释中所述,您应检查服务器的错误日志以获取此错误的详细信息。

RewriteCond %{HTTP_HOST} ^\*\.example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.\*\.example\.com$
//RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "https\:\/\/www\.example\.com" [R=301,L]

这应该在做什么? (它在当前状态下不做任何事情。)

RewriteCond %{HTTP_HOST} ^example.com$
//RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
//RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "https\:\/\/www\.example\.com\/" [R=301,L]

这仅规范请求文档根目录。它不会对任何其他URL做任何事情。但是,它也位于配置文件中的错误位置,并且可能仍未执行任何操作。它需要放在文件的顶部,在CI前控制器之前。