2017-03-23 3 views
0

이 상황에 대해서는 모범 사례에 대해 질문드립니다. 슬림/재 작성/htaccess에 대한 질문을했지만 성공하지는 못했습니다. 여기서 아무런 문제가 발생하지 않았으므로 좋은 연습인지는 알 수 없습니다.Slim Framework에서 보이지 않는 도메인 폴더에 htacess 하위 도메인

그래서, 슬림 프레임 워크 3, I는 메인 도메인 www.domain.com 및 하위 도메인 api.domain.com 있습니다. 내가 주소 표시 줄에 api.domain.com/messages을 넣을 때

, 그것은 www.domain.com/api/messages 투명성, 아니 리디렉션을 호출합니다.

이 트릭을 달성하기 위해, 내 index.php 파일에 넣고 :

if ($_SERVER['HTTP_HOST'] == 'api.domain.com') { 
    $_SERVER['REQUEST_URI'] = '/api' . $_SERVER['REQUEST_URI']; 
} 

그것은 매우 잘 작동하고 내가 규칙을 재 작성 시간을 보내고 싶지 않아 ...하지만 사람이있는 경우 제안, 고마워!

읽어 주셔서 감사합니다.

+0

응용 프로그램에서 항상/api 끝점을 해석하는 경우 하위 도메인을 사용하려는 이유가 무엇입니까? –

+0

안녕하세요! 나중에이 API에 앱, 게임 결과, arduino 및 공개 데이터를 연결하고 싶습니다. ** www.domain.com **에 웹 사이트가 있습니다. ** www.domain.com/api/game/space-invaders **가 아닌 ** api.domain.com/game/space-invaders **와 같은 주소를 선호합니다 ** – Seb00ch

답변

0

당신이 할 수있는 한 가지 방법은 api 요청을 처리하기 위해 index.php 파일을 사용하여 루트 디렉토리에 api 디렉토리를 만드는 것입니다. 그래서 당신의 index.php를 추가 할 수 파일/공공 :

// public/index.php 
chdir(dirname(__DIR__)); 

require_once 'vendor/autoload.php'; 

// api domain so include the api routes 
if ($_SERVER['HTTP_HOST'] == "api.domain.com") { 
    require 'api/index.php'; 
    exit; 
} 

// -------------------------------------------- 
// non api domain 

$app = new Slim\App; 

$app->get('/',function($request,$response) { 
    return $response->write("I'm not the API site!"); 
}); 

$app->run(); 

을 그리고 다음 API/index.php 파일에 별도로 API 경로를 처리 : 예가 그것이

// api/index.php 
$app = new Slim\App; 

$app->get('/',function($request,$response) { 
    return $response->withJson('base api'); 
}); 

$app->group('/game',function() { 

    $this->get('',function($request,$response) { 
     return $response->withJson('Select a game'); 
    }); 

    $this->get('/space-invaders',function($request,$response) { 
     return $response->withJson('Space Invaders API'); 
    }); 

    $this->get('/pacman',function($request,$response) { 
     return $response->withJson('Pac Man API'); 
    }); 
}); 

$app->run(); 
0

을! 내 경우, 나는, 각 하위 도메인에 대한 내 웹 사이트 용 및 공용 폴더를 만들어 :

  • 공공
  • SRC를
    • API를
    • 게임
    • 응용 프로그램
    • 관리자
    • www
  • 공급 업체

모든 하위 도메인은 공공 폴더에 내 의 index.php을 가리 킵니다. 그런 다음 index.php 스위치로 http_host 요청한 폴더 (예 : src/api/app.php)의 올바른 앱 파일. 각 하위 폴더 (API, 관리, ...), 응용 프로그램 파일, 데이터베이스 스키마, 뷰 여부, 능숙와 동일한 구조, ...이처럼

, 모든 부분이 분리 한 파일 시스템에서

, 그러나 그들은 동일한 데이터베이스와 벤더를 공유합니다. 나는 특정한 필요를 위해이 구조가 필요한 것을 막는다. 각 부분에 슬림을 설치하고 싶지 않습니다 ...

도와 주셔서 감사합니다!