사용자의 위치 정보를 등록, 로그인 및 업데이트하기위한 RESTful API를 제공하는 간단한 PHP 앱을 만들었습니다. 필자는 로컬 Apache 서버에서 MySQL 데이터베이스를 사용하여 테스트했으며 모든 것이 좋았습니다.로컬 서버에서 HTTP 요청 헤더를 인식하지만 온라인 서버가 아닌 경우
최근에 PHP 코드를 온라인 호스트 HostGator으로 마이그레이션했습니다. HTTP 요청 헤더를 인식 할 때 코드 일부가 작동을 멈췄습니다. 이처럼 :
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
Authorization: f0cc696e44f76f9638331b5487f4b01d
Content-Type: application/x-www-form-urlencoded
Accept: */*
DNT: 1
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4
가 나는 헤더
인증에서 API 키를 읽도록 내 PHP 코드를 썼다. 그것은 내 로컬 서버에서 잘 작동하지만 같은 코드가 HostGator에
에 내가 내 로컬 환경에서 기본하지만 명시 적으로 설정해야하는 특정 설정이있을 수 있습니다 의심
를 마이그레이션 할 때 누락 API 키를보고 HostGator. 내가 HTTP 요청을 보내기위한 크롬 확장 고급 나머지 클라이언트을 지역 단절 및 데이터베이스에 대한 XAMPP를 사용하고있어
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]
AddType application/x-httpd-php54 .php
: 여기에 내 현재의 .htaccess입니다.
편집 : 내 코드는 헤더 값을 검색 할 수 있습니다 : 당신은 당신이 "인증"헤더를 검색하는 방법에 대한 코드를 게시되지 않은
$headers = apache_request_headers();
if (isset($headers['Authorization'])) {
$api_key = $headers['Authorization'];
// validating api key
// ...
} else {
// api key is missing in header
// ...
}
당신은 최고입니다 !!! – TheInvisibleFist
맞춤 헤더에 대한 좋은 통찰력! 대신에, 나는 그것을 _attaccess_ 파일에 대신 추가하여 규칙을 해결했다 :'RewriteRule. * - [E = HTTP_AUTHORIZATION : % {HTTP : Authorization}]' –