.htaccess 尝试执行CURL时出现500内部服务器错误

.htaccess 尝试执行CURL时出现500内部服务器错误,.htaccess,laravel,curl,.htaccess,Laravel,Curl,您好,我这里有一个问题,当我尝试在我的服务器上执行curl时,我得到一个500内部服务器错误。我联系了技术支持,他们声称这是我的.htaccess文件,对此他们无能为力 这是我的代码: $api_key = 'f7cb125a449f4f908931f360ac33b52a'; $server_ip = '162.13.170.20'; $port = '5000'; $url = "https://".$server_ip.":".$port."/api/fusion/tp/".$api_ke

您好,我这里有一个问题,当我尝试在我的服务器上执行curl时,我得到一个500内部服务器错误。我联系了技术支持,他们声称这是我的.htaccess文件,对此他们无能为力

这是我的代码:

$api_key = 'f7cb125a449f4f908931f360ac33b52a';
$server_ip = '162.13.170.20';
$port = '5000';
$url = "https://".$server_ip.":".$port."/api/fusion/tp/".$api_key;

// Get cURL resource
$curl = curl_init();
// Set some options - we are passing in a useragent too here
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $url,
    CURLOPT_USERAGENT => 'myTicketGH',
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => array(
        'kuwaita' => 'malipo',
        'amount' => $calculated_total_cost,
        'mno' => $network,
        'msisdn' => $phone
    )
));
// Send the request & save response to $resp
$resp = curl_exec($curl);
// Close request to clear up some resources
curl_close($curl);

return [
    'response' => $resp
];
这是我的.htaccess文件:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    Options +FollowSymLinks
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . index.php [L]

     RewriteEngine On
     RewriteCond %{HTTP:Authorization} .
     RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

我还应该补充一点,我的服务器使用一个专用的IP地址。

您在URL中使用的是https协议

$url = "https://".$server_ip.":".$port."/api/fusion/tp/".$api_key;

应该使用http协议

您必须使用curl处理https。最简单的选择是使用

CURLOPT_SSL_VERIFYPEER => 0

因为如果你不这样做,你会得到一个空的结果。当您想要处理结果时,会抛出500错误,因为它是空的。

您的错误日志说明了什么?在我的cpanel中,在我的错误日志页面上看不到任何相关错误。请尝试启用Curl Verbose
Curl\u setopt($curlhandle,CURLOPT\u Verbose,true)它是否输出了一些有意义的内容?我刚刚尝试过,它仍然会给我500个内部服务器错误。我不明白,你是说CURL不能使用https吗?不。我只是怀疑https可能是罪魁祸首。您是否也在设置授权标头?请共享错误日志我检查了错误日志,那里没有与此错误相关的内容。没有我正在设置授权标头。也尝试了此操作,无法使其工作,相同的响应,我用谷歌ip测试了你的代码,我的解决方案也使用了你的代码。那么可能是我发布到的服务器而不是我的代码吗?你应该尝试在没有laravel的情况下调用curl。然后你就知道是哪台服务器抛出了错误。只是在没有laravel的情况下尝试了一下,仍然不起作用,如果这意味着它来自另一台服务器,那么你知道它为什么抛出500个内部服务器错误吗?
CURLOPT_SSL_VERIFYPEER => 0