【VPS】Alias(エイリアス)の設定方法
通常、「http://○○○.com/abc/~.html」というURLでアクセスがあった場合、ルートディレクトリにある「abc」ディレクトリの「~.html」が出力されます。
ルートディレクトリ/abc/~.html
しかし諸々の理由で「abc」ディレクトリは作成せず、「http://○○○.com/abc/~.html」でのアクセスは「def/ghi」ディレクトリにあるファイルで対応したい時があります。
ルートディレクトリ/def/ghi/~.html
この場合、Alias(エイリアス)を設定すれば実現可能です。
Aliasとは?
Alias(エイリアス)とは、日本語では「別名」という意味を持ち、本来のディレクトリの場所とは違う別のディレクトリ(およびそのディレクトリの中のファイル)を参照させる機能です。
Aliasを使うと、ドキュメントルート外のディレクトリをWeb上に公開することも可能になります。
Aliasの設定には「/etc/httpd/conf/httpd.conf」を編集する必要があるため、ルート権限があるVPSや専用サーバーで設定可能です。
Aliasの設定
Aliasを有効にする
基本的にAlias(mod_alias)はデフォルトで有効になっていますが、一応設定前は確認しておいたほうがよいです。
Tera Termなどで以下を実行してください。
[○○○@vweb2 ~]# vi /etc/httpd/conf/httpd.conf
そして以下の記述を探してください(私の場合は188行目にありました)。
LoadModule alias_module modules/mod_alias.so
この先頭に「#」がついていなければAliasは有効になっています。
環境
Aliasを設定する前に、一応私のVPSの環境を載せておきます。
- ドメイン(バーチャルホストで設定)
○○○.com - ルートディレクトリ
/var/www/html/○○○
※「○○○」はバーチャルホストで設定したもの
ドメイン「○○○.com」でアクセスすると、「/var/www/html/○○○」に設置している「index.html」が表示されます。
なお、以降のAlias設定のため、「/var/www/html/○○○/def/ghi」のようにディレクトリを作成し、そこに「index.html」を設置しました。
「httpd.conf」の編集
では、Aliasを設定します。設定は「httpd.conf」を編集しますので、先ほどと同様に「httpd.conf」を開きます。
[○○○@vweb2 ~]# vi /etc/httpd/conf/httpd.conf
そして以下を追加してください(私は一番最後に追加しました)。
なお、「○○○」の部分は各自の設定で変わります。
Alias /abc "/var/www/html/○○○/def/ghi/"
<Directory "/var/www//html/○○○/def/ghi">
Allow from all
</Directory>
そして、「httpd」を再起動してください。
[○○○@vweb2 ~]# /etc/rc.d/init.d/httpd restart
そうすると、ドメイン「○○○.com/abc」でアクセスするとURLはそのままで「/var/www/html/○○○/def/ghi」に設置したファイルが出力されるようになります。
なお、VPSに割り当てられたIPアドレスで
○○○.○○○.○○○.○○○/abc
のようにアクセスした場合や、複数のドメインをバーチャルホストしている場合、他のドメインで
△△△.net/abc
のようにアクセスした場合も、すべて「/var/www/html/○○○/def/ghi」が参照されます。
この場合、かなり都合が悪くなります。
こういうときは、以下の方法が最適です(以下の方法を適用する場合、上で編集・追記した部分は削除してください)。
複数のドメインをバーチャルホストしている場合
こういう場合は、Aliasを「vhost.conf」で設定している指定ドメインにのみ記述すれば解決します。
以下のコマンドで「vhost.conf」を開いてください。
[○○○@vweb2 ~]# vi /etc/httpd/conf.d/vhost.conf
そして以下のように「Alias /abc "/var/www/html/wakusoku/def/ghi/"」を追加してください。
<VirtualHost *:80>
DocumentRoot /var/www/html/○○○
ServerName ○○○.com
Alias /abc "/var/www/html/○○○/def/ghi/"
</VirtualHost>
そして「httpd」を再起動すればドメイン毎のAlias設定が可能になります。
あわせて読んでほしい!
コメント
まだコメントはありません。