Presented by Nishishi via Movable Type. Last Updated: 2007/11/04. 04:56:26.

深い階層にあるページを短いURLでアクセスさせるには

深いディレクトリ階層にあるページを、浅い階層にあるように見せかけてアクセスできるようにするには、シンボリックリンクを張るのが楽です。例えば、階層が深すぎて長くなってしまうURLを、短いURLでアクセスできるようにしたい場合など。

シンボリックリンクというのは…、ええとまあ、Windowsでいうところの「ショートカット」みたいなもんです。「ショートカット」よりはなんとなく「実体」っぽい扱いが可能なんですけども、まあ「遠くにあるモノを指し示してる別名称」という点では一緒です。

シンボリックリンクを使う条件としては、WebサーバのOSがUNIX系であることと、Telnetとかを使ってシェルにアクセスできること。(=コマンドラインからコマンドを実行できること)

例えば、
http://www.example.com/tools/cgi/mt/cgi-bin/blog/
…というような、非常に階層の深い位置にあるページを、
http://www.example.com/blog/
…という短いURLでアクセスさせたい場合とか。

Webサーバのディレクトリ構造で、
http://www.example.com/index.html
というURLに対する(Webサーバ上の)絶対パスが
/home/hogeuser/www/index.html
である場合、さっきのながーいURLを短くすべくシンボリックリンクを張るには、次のようにコマンドを打ちます。

cd /home/hogeuser/www/
ln -s /home/hogeuser/www/tools/cgi/mt/cgi-bin/blog/ blog

lnコマンドに-sオプションを付けると、シンボリックリンクを作れます。
第2パラメータにはリンク先の実体(パス)を指定して、第3パラメータには仮想名を指定します。

上記のように入力すると、
/home/hogeuser/www/tools/cgi/mt/cgi-bin/blog/
というディレクトリは、
/home/hogeuser/www/blog/
というパスでもアクセスできるようになります。(※)

その結果、
http://www.example.com/blog/
というURLにアクセスするだけで、実際には、
http://www.example.com/tools/cgi/mt/cgi-bin/blog/
にあるファイルにアクセスできるようになります。
もちろん、ブラウザのアドレス欄には、
http://www.example.com/blog/
という短いURLが表示されてます。

※最初にcdコマンドで、カレントディレクトリを /home/hogeuser/www/ に移動してます。だから、lnコマンドの第3引数に「 blog 」と書けば、このカレントディレクトリ上に「 blog 」という名称のシンボリックリンクが出来上がります。その結果、 /home/hogeuser/www/blog/ というパスで、第2引数で指定したパスにアクセスできるようになるわけです。

私の契約してるレンタルサーバは、Telnetを使ってシェルにアクセスできるので、シンボリックリンクを使う方法はよく利用してます。Apacheの設定ファイルをごにょごにょしてエイリアスを設定するよりも、シンボリックリンクを作っちゃう方が楽なんですよね。^^;;;

この日記へのコメントはお気軽に! コメント数:0 トラックバック数:0

コメント

コメント数: 0件

コメント投稿欄 この日記に対するコメント投稿を歓迎します。

保存しますか?



※本文中にURLは書けません。(書くと投稿が拒否されますのでご注意下さい。)

投稿後、投稿できていないように見えることがあります。ブラウザのキャッシュが読まれているだけですので、ページを再読込すれば(=たいてい[F5]キーを押せば)投稿内容が反映されていることが確認できるはずです。連続投稿を試す前にご確認下さい。(^^;)

トラックバック

このエントリーへのトラックバックURLを表示するにはここをクリック
※スパム防止のため、トラックバックURLは別ウインドウで表示します。(JavaScriptが有効でないと表示されません。)