Apache RewriteRuleのパターン


概要

Apache RewriteRuleのパターンについてメモ

フロントエンドとバックエンドを同一サーバーで管理する場合

フロントエンドは通常のURLで、バックエンドはURLがapiで始まる場合です。

想定URL

アプリ URL
フロント http://{ドメイン}/ http://hoge.com/users
バックエンド http://{ドメイン}/api/ http://hoge.com/api/users

想定ディレクトリ構成

ドキュメントルート直下に.htaccess、フロントエンドアプリケーション、バックエンドアプリケーションを配置する。

DocumentRoot
└ .htaccess
└ front
└ back

.htaccess

.htaccessで記載していますが、root権限を持っているのであれば.conf側でも問題ないと思います。

.htaccess
RewriteEngine on
RewriteBase /

RewriteRule ^$ front/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/api/
RewriteRule ^(.+)$ front/$1 [L]

RewriteCond %{REQUEST_URI} /api/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^api/(.+)$ back/api/$1 [L]