2017-03-23 7 views
0

この状況では、ベストプラクティスにお問い合わせします。私はSlim/rewrite/htaccessでいくつかの質問を赤くしますが、成功しません。ここで問題は発生しません、それは良い練習であるかどうかわかりません。htacessサブドメインからSlim Frameworkで見えないドメインフォルダ

ので、スリムフレームワーク3と、私はメインのドメイン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&openデータを接続したいと思っています。私は** www.domain.com **のウェブサイトを持っています。 ** www.domain.com/api/game/space-invaders **ではなく、** api.domain.com/game/space-invaders **のようなアドレスを使用することをお勧めします – Seb00ch

答えて

0

あなたができることの1つは、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

はいそこにあります!私の場合のために、私は私のウェブサイトや公共のための1つ、各サブドメインのフォルダを作っ:

    • 公共SRC
      • API
      • ゲーム
      • アプリ
      • 管理
      • www
    • ベンダー

    すべてのサブドメインは、パブリックフォルダ内の私ののindex.phpを指します。次にindex.phpとスイッチhttp_host(src/api/app.phpのような)尋ねられたフォルダの良いアプリファイル。各サブフォルダ(API、管理、...)、アプリケーション・ファイル、データベース・スキーマ、ビューか、ressourcesと同じ構造、...このよう

    、すべての部分が分離しているファイルシステム内

    、同じデータベースとベンダーを共有しています。私は、特定の必要性のためにこの構造が必要であるのを防ぎます。私は各部分にスリムをインストールしたくない...

    ありがとう!

    関連する問題