【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設定が可能になります。

 

頑張って書いたのでちょろっと読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント