Apache ドキュメント ルート以外の別のディレクトリからバージョン管理された API を実行しようとしています。
私の現在のアプローチは、Alias ディレクティブでこれを試すことです:
Alias /api/v1.2/ /var/www/api-v1.2/
Alias /api/v1.1/ /var/www/api-v1.1/
これは正常に動作していますが、mod_rewrite を使用してすべてのリクエストを index.php フロント コントローラーにルーティングする PHP フレームワーク (Codeigniter) を使用しています。
RewriteCond %{REQUEST_URI} !=/server-status
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/?$1 [L]
URL 経由で実際のファイルにアクセスでき、エイリアス ディレクティブは正常に機能します。システムが書き換える URL にアクセスすると、リクエストはドキュメント ルートから処理されます。
トラフィックをそれぞれのフロント コントローラーにルーティングしながら、CI アプリケーションを Alias ルールに準拠させるにはどうすればよいですか?
編集:明確にするために、CI コードベースの 3 つの個別のバージョンがあります。1 つは Apache doc ルートにあり、2 つは各エイリアス ディレクトリにあります。URL に基づいて正しいバージョンのコードベースにリクエストをルーティングしたいと考えています (エイリアスが一致しない場合は、デフォルトでドキュメント ルートになります)。
/var/www/html (doc root)
/var/www/api-v1.2
/var/www/api-v1.1