作者: ねこ丸
日時: 2007/2/23(11:19)
  ねこ丸です。

davi writes:

> あ・・・。ひょっとしてhttpd.confの書き換えをせよって
> 指示ではなくって、Rewriteで飛ばせって意味だったんですか?
> それとも、httpd.confの書き換えなしでもtelnetで入ればln使える
> んでしょうか。
> 頭から、root持っていないよぉ、って思いこんじゃったのですが。

  ln は要はショートカットを作る機能です。httpd.conf も .htaccess も関係
ありません。以下の条件が揃えば使えると思います。

- shell が使える
- chroot などで ln コマンドの起動が禁止されていない
- 対象がログインユーザーの管理できるファイル、ディレクトリである

# 自分でよくやるのは、URL を変えずに内部のディレクトリ構成を変えたいと
# きに使いますね。


> そうでないと、wwwなしでアクセスしてきたヤツを書き換え
> できないんだから、そうなるはず、とは思うんですが、どうも
> 自信ないのです。

  ちょっと長いですが

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

  より引用しますと、

> mod_rewrite では、信じられないことに、URL がファイル名に変換されてか
> らずっと後に辿り着くところにある、 ディレクトリごとのコンテキストすな
> わち .htaccess ファイルの中で URL 操作を行えるようになってい
> す。.htaccess ファイルはファイルシステム中にあるために 処理の流れはす
> でにこの段階まで到達しているので、 このようになっているのです。つまり
> この時点で API フェーズに従えば、どの URL を操作するにも既に遅きに失
> しているのです。 この鶏と卵問題を打開するため、mod_rewrite ではちょっ
> としたトリックを使っています: ディレクトリごとのコンテキストで URL /
> ファイル名の操作を行う際、 mod_rewrite はまずファイル名を対応する
> URL に戻し (これは通常不可能ですが、これを可能にするトリックについて
> は RewriteBase を見てください) 、その新しい URL で内部的に新しいサブ
> リクエストを生成しているのです。これで API フェーズ処理が再度起動され
> ます

  ということで、本来 .htaccess に達した段階で URL はファイル名に変換さ
れちゃってるんだけど、それを URL にもいっかい戻して mod_rewrite は頑張っ
て処理しちゃうよんということですね。ただし遅いよと、このあとに書かれて
いるわけですが。

  rewrite を使うんであれば RewriteCond の方に IP アドレスを列挙して問答
無用で弾くのはすぐにできそうな気がします。

# .htaccess でそこまでの制御をやったことはないですけど

--
    ねこ丸