.htaccess 尝试执行CURL时出现500内部服务器错误
您好,我这里有一个问题,当我尝试在我的服务器上执行curl时,我得到一个500内部服务器错误。我联系了技术支持,他们声称这是我的.htaccess文件,对此他们无能为力 这是我的代码:.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
$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