こんにちは。
BIG1等を当てたいサラリーマンです。
WordPressでは、拡張子の隠蔽は必要ないんですけど別に運用しているWebサイトはPHPで作っているので、.phpを隠蔽します。
拡張子を隠蔽するためにApache(webサーバー)では、httpd.confに設定しますが、ロリポップの様なレンタルサーバーの場合は直接httpd.confに設定できないので.htaccessというファイルに設定します。
Apacheのバージョンや、隠蔽のやり方で設定方法は違います。
ロリポップのApacheのバージョンを調べてみました。
ホームページでは、Apache2.xと公開されていました。
不明だったので、telnetでアクセスしてバージョン情報を確認しました。
あえて公表はしませんが、けっこう古いバージョンでした。。。見なかったことにします。
さて、そんなロリポップで.htaccessを使って拡張子を隠蔽する方法を紹介します。
隠蔽する方法は何種類かありますが、今回は拡張子がないファイルをPHPで実行するように設定します。
もくじ
- 概要
- .htaccessを配置する
- まとめ
概要
ルートディレクトリに、.htaccessファイルを作成し設置します。
隠蔽するためにForceTypeディレクティブで、MIMEコンテントタイプを指定します。
Apacheの日本語ドキュメントから引用した注意事項です。
このディレクティブはそこにあるすべてのファイルが MIME-type で指定されたコンテントタイプとして扱われるようにします。
メディアタイプを決めることができるかもしれない ファイルの拡張子も含め、すべての MIME タイプの関連付けを 上書きすることに注意してください。
core – Apache HTTP サーバ バージョン 2.4
.htaccessを配置する
Mac OSXは標準では、ドットから始まるファイルは作成出来ません。
ドットを付けずにhtaccessで作成し、FTPでサーバにアップロードしてからリネームしてください。
ファイルを以下の内容で保存してください。
DirectoryIndex index <Files ~ "^(?!.*\.).*$"> ForceType php5.3-script </Files>
php5.3-scriptとは。。。ロリポップの独自設定です!
.htaccessの配置が終わったら、PHPファイルから拡張子を除外します。
php5.3バージョンで動かしているので、php5.3-scriptです。
php5.2なら、php5.2-scriptです。
PHPのバージョンや設定の変更はこちらのマニュアルを参照してください。
まとめ
この記事の内容で、2年ぐらい前に設定しました。
その際にいろいろ調べたと思うのですが、出典先を失念してしまいました。
たぶん、ロリポップのホームページに掲載されていたと思うのですが調べても出てきませんでした。
.phpを、.htmlで実行させる記事は多く目にするのですが、拡張子を除外する記事は余り見かけなかったのでエントリーしました。