我正在运行一个基于CI的Web应用程序,该应用程序可以在旧服务器上正常运行,但是我正在将其迁移到Google云上的centos 7 / cwp实例。
设置好我通常如何设置CI后,我收到HTTP 500和内部服务器错误。
我怀疑它与.htacess有关,但我不知道出了什么问题。任何帮助表示赞赏!
它在Google云实例上的centos 7上运行CWP。我所做的事情:
以下是旧服务器上当前的.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错误。
答案 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前控制器之前。