$ _server에 표시되지 않는 요청 헤더에 어떻게 액세스 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/827060

  •  05-07-2019
  •  | 
  •  

문제

PHP에서 REST API를 만들려고 노력하고 있으며 Amazon의 S3 접근 방식과 유사한 인증 체계를 구현하고 싶습니다. 여기에는 요청에서 사용자 정의 '승인'헤더를 설정하는 것이 포함됩니다.

$ _server [ 'http_authorization']로 헤더에 액세스 할 수 있다고 생각했지만 var_dump ($ _ server)에서는 찾을 수 없습니다. APACHE_REQUEST_HEADERS () 함수는 내 문제를 해결하지만 호스트는 PHP를 CGI로 구현하므로 사용할 수 없습니다.

PHP에서 완전한 요청 헤더에 액세스 할 수있는 다른 방법이 있습니까?

도움이 되었습니까?

해결책

당신은 몇 가지를해야합니다 mod_rewrite 마법사는 CGI 장벽을 지나서 헤더를 얻기 위해 :

RewriteEngine on
RewriteRule .? - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

<?php
    $auth = $_SERVER['HTTP_AUTHORIZATION'];
?>

사용하는 경우에 유의하십시오 mod_rewrite 다른 목적으로, 그것은 결국 존재 할 수 있습니다 $_SERVER['REDIRECT_HTTP_AUTHORIZATION'].

다른 팁

노력하다

$_ENV['HTTP_AUTHORIZATION']

Apache 모듈 인터페이스 대신 CGI 인터페이스를 사용하는 경우 HTTP 헤더를 환경 변수로 사용할 수 있어야합니다.

모든 종류의 HTTP 관련 액세스를 허용하는 환상적인 PECL 확장 기능이 있습니다. pecl_http 더 구체적으로 http://php.net/http 그리고 http://php.net/manual/en/function.http-get-request-headers.php.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top