구글 짧은 주소 https 구분 질문드립니다. 채택완료
그누에 들어있는 구글 짧은 주소를 잘 사용하고 있습니다.
사용중에 이상한 점이 있어 혹시 아시는 분이 있나 문의드립니다.
보안서버를 사용하면 짧은주소를 https가 아니라 http로 줄여주네요.
예를 들어
https://www.goobeegoobee.com/bbs/board.php?bo_table=guide&wr_id=21">https://www.goobeegoobee.com/bbs/board.php?bo_table=guide&wr_id=21
이 주소를 그누에서 줄이면
https://goo.gl/Czuod1">https://goo.gl/Czuod1
이렇게 줄여지는데요..
이녀석을 오픈 그래프 디버거 (https://developers.facebook.com/tools/debug/">https://developers.facebook.com/tools/debug/) 에서 확인해보면
https로 리다이렉트되는 것이 아니라 http로 리다이렉트 됩니다.
물론 .htaccess에서 http로 오는 것을 https로 리다이렉트시켜놨기 때문에 정상적으로 표기되기는 하는데 왜 이렇게 되는지 찜찜하네요.
common.lib.php 의 관련 함수 부분은
</p>
<p>// goo.gl 짧은주소 만들기
function googl_short_url($longUrl)
{
global $config;</p>
<p> // Get API key from : <a href="http://code.google.com/apis/console/" target="_blank" rel="noopener noreferrer">http://code.google.com/apis/console/</a>
// URL Shortener API ON
$apiKey = $config['cf_googl_shorturl_apikey'];</p>
<p> $postData = array('longUrl' => $longUrl);
$jsonData = json_encode($postData);</p>
<p> $curlObj = curl_init();</p>
<p> curl_setopt($curlObj, CURLOPT_URL, '<a href="https://www.googleapis.com/urlshortener/v1/url?key='.$apiKey);" target="_blank" rel="noopener noreferrer">https://www.googleapis.com/urlshortener/v1/url?key='.$apiKey);</a>
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
curl_setopt($curlObj, CURLOPT_POST, 1);
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData);</p>
<p> $response = curl_exec($curlObj);</p>
<p> //change the response json string to object
$json = json_decode($response);</p>
<p> curl_close($curlObj);</p>
<p> return $json->id;
}</p>
<p>
이 부분인데요..
$longUrl 이 부분이 어디에서 오는지 잘 모르겠습니다.
이 부분이 어디서 오는지를 알아야 왜 https가 아니라 http로 나오는지 알 것 같은데 도통 못찾겠습니다.
고수님들의 도움이 절실합니다~
답변 1개
답변에 대한 댓글 3개
사용하는 api가 http를 거치기 때문에 그런것으로 보이며 http로 넘어온걸 다시 https로 받아서 값을 넘겨주거나 아니면 https api를 사용하던지 하셔야 합니다.
그누 플러그인의 sns 관련 내용중에
$sns_send = G5_BBS_URL.'/sns_send.php?longurl='.urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
때문에 문제가 생기더군요.
이 부분 https로 고치니 해결되었습니다. ^^
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그럼 상식적으로https로 운영하니까 똑같이 https로 넘겨줘야 할 것 같은데
http로 넘어오는게 이상하네요..
혹시 그 이유를 알 수 있을까요?