ApacheのAliasって?
Apacheでは、Aliasを指定することによって、
リクエストのパス部分が指定したものと一致した場合、
ドキュメントルート以外のディレクトリからページを返すようにすることができます。
例えば、ドキュメントルートが、
/var/www/html
だった場合、
sample.com/site/index.html
というリクエストが来た場合、通常は、
/var/www/html/index.html
のファイルが返されます。
ただし、Aliasに、
Alias site /home/sites/
という設定をして、上記のリクエストが来た場合、
/home/sites/index.html
のファイルを返すようになります。
特定のファイルへのリクエストが来た時に、Aliasを適用できないか?
今回業務上で、
【ドメイン】/sample.html
というリクエストが来たとき、ドキュメントルートとは違う場所にあるsample.htmlを参照できないか
というケースに遭遇しました。(URLの変更は不可)
そこまでApacheに詳しくないため、そのケースをどうやって実現するか迷い、
Aliasでどうにかできないかと検索していました。
ですが、どのサイトでも、特定のファイルをAliasに指定する、といった使い方はしていませんでした。
やってみた
きっと他にやりようあるんだろうなと思いながらも、とりあえずAliasでやってみようかと思い、以下のように指定してみました。
Alias /sample.html /home/sites/hoge/sample.html
ダメ元で試したところ、これでもsample.htmlを参照することができました!
終わりに
あまり綺麗な形とは言えないし、そんなに使いどころもないとは思いますけど、
同じような状況になった方はぜひ参考にしていただければと思います。