CakePHPについて書くことが多いです。MySQLやHTML、CSS、Javascriptや、サーバー周りについても書くことがあります。分からないことも多いので、記事を読んで助言してくれる人が現れるのを期待している毎日です。-IndexesとDirectoryIndexとIndexIgnore(酒と泪と男と女的なニュアンスで)開発技術2015年7月24日Facebook1Hatebu0Pocket0Google+0Twitter0この記事はだいぶ前に書かれたものなので情報が古いかもしれませんおまとめ三行ファイル一覧の表示を許可しないアクセスしたところで一覧は見れないよ〜バイツァダスト(負けて死ね)ウェブサイトで使っているcssとかjs、あるいは画像って、基本的にはURLでアクセスできるようなところに置いてありますよね。cssやjsファイルそのものはともかくとして、そのファイルが置いてあるディレクトリに直接アクセスできるのは、セキュリティ上、必ずしも良いとは言えないときもあると思います。あかつきのお宿の場合、cssファイルは「http://norm-nois.com/css/」の下に置いてあるし、jsも「http://norm-nois.com/js/」の下にあるから、それぞれのURLにアクセスすると、置いてあるファイルの一覧が見えてしまう(今は見えないけど)。うちの場合は見られて困るほどのものもないから別に良いっちゃ良いんですけど、人によってはそれを避けたい場合もあるでしょう。今日はそれをちょっとやってみましょう。index.htmlを置いとくやり方の一つとしては、各ディレクトリにindex.htmlを置いとくことです。index.phpとかでも良いけど。ディレクトリにアクセスした場合、その直下にindex.htmlがあると、自動的に読み込んでくれます。index.htmlを置いとけば、「http://norm-nois.com/css/」と「http://norm-nois.com/css/index.html」は、同じ挙動をするってことですね。Wordpressはそんな感じのことをやってるような気がします。wp-contentディレクトリとか、その下にあるpluginsディレクトリとかの中に全部index.phpが置いてあって、ファイルの中には何も書かれてない。URLで直接アクセスしても、真っ白なページが表示されるだけで、ファイルの一覧が表示されないようになっています。これでもダメではないですが、でも一つずつindex.htmlを用意して置いて......ってのも、ちょい面倒ですよね。うっかり設置し忘れたディレクトリとかも出て来ちゃうかもしれないし、それならもっと簡単に、一括で設定できる方が良いと思います。-Indexesその一括のやり方ってのが、.htaccessに書いちゃう方法です。.htaccessを開いたら、以下の一行を書く。-Indexesこれだけでオッケーです。意味としては、ディレクトリへのアクセスがあった場合、index.htmlとかがなければ、ディレクトリの中にあるファイル一覧の表示を許可しない、みたいな感じです。「http://norm-nois.com/css/」にアクセスしたとき、cssディレクトリの中にindex.htmlがあればそれを表示しますが、なければ403エラーになります。一覧表示を避けるなら、たぶんこの方法が一番お手軽なんじゃないでしょうか。DirectoryIndex上記のやり方ができれば良いんですが、レンタルサーバーなどの場合だと、Optionsが使えない場合があります。僕が知る限り、さくらインターネットは使えない。プランによるかもしれないけど。その場合は代替手段として、以下のような書き方があります。.htこれをhtaccessに書く。挙動としては上記のOptionsとほとんど一緒です。ディレクトリへのアクセスがあった場合、index.htmlがなければ.htというファイルを探すのですが、でも.htなんてファイルは、あったところで(たぶん)ブラウザでは開けないので403エラーになると、そんな感じ。この書き方だと、対象がindex.htmlのみになってしまいます。index.htmlの他にindex.phpとかindex.cgiとかも対象にしたいというのであれば、全部書く必要があります。.htこれだと、ディレクトリへのアクセスがあった場合に、まずindex.htmlを探しに行って、なければindex.phpを探して、それでもなければindex.cgiを探し、それでもなければ403エラーになります。.ht」は、ディレクトリへのアクセスそのものを禁止してしまうやり方でしたが、アクセスは許可するけど、アクセスしたところで一覧は見れないよ〜的なことをやりたければ、こんな書き方もあります。*これだと403エラーにはなりませんが、ファイルの一覧は何も表示されない状態になります。IndexIgnoreってのは、条件に該当するファイルを一覧表示から除外する、みたいなものなので、ワイルドカードの「*」を条件に入れとけば、全部のファイルが一覧から見えなくなるわけですね。*.css」とかだと、拡張子がcssのファイルだけが一覧から除外されるので、ディレクトリの中に.txtみたいなテキストファイルが入っていれば、それは一覧表示されることになります。どれを使うかはお好みで、あるいは状況次第ってとこですかね。個人的には、403エラーでアクセスを禁止するよりは、index.htmlを各ディレクトリに配置して、不正なアクセスがあったときに「ここにアクセスしたということは、お前はまんまと引っかかったってことだ。バイツァダスト(負けて死ね)」って表示させるのが、一番オススメですねー。Optionsが使えるならそれを採用するのが良いんじゃないでしょうか。CakePHPやWordPressで何で.htaccessが必要なのかやっと理解した件まったくもって、目からウロコと言いますか、鼻から牛乳と言いますか、口からヨダレと言いますか、『ピー』から『ピー』と言いますか......。(『ピー』には卑猥な言葉が入ります)普段、CakePHPやWordpres...18901index.phpを適切に書き直すはい、そーゆーわけで、前回の終わりに宣言した通り、index.phpの話をしたいと思います。分かってみれば全然たいしたことなかったんですけど、分かるまでは無駄に苦戦しまして......未だにエンジニアとして...02000Cakephp2.0を触ってみたよこのあかつきのお宿というサイトはちょびっと古いバージョンのCakePHPとちょびっと古いバージョンのWordpressで動いているんですが、そろそろ新年度も始めることですし、心機一転ってことでお宿の方も新しくしよう...00000phpMyAdminのバックアップほい、ではphpMyAdminのバックアップ、行ってみましょうか。