2014年01月06日

Raspbian での Apache mod_rewrite の設定で,かなりハマってしまったのでメモ書き.debian 系に慣れている人にはなんということはないのだろうけれど,RedHat 系ばかりいじってきた私には,なかなかわからなかったよー.

Web拍手:


Raspberry Pi 用 OS の Raspbian での Apache mod_rewrite の設定で,かなりハマってしまったのでメモ書き.8 時間は悩んでしまったよー.
debian 系のディストリビューションに慣れている人にはなんということはないのだろうけれど,RedHat 系(RHEL, CentOS, ScientificLinux など)ばかりいじってきた私には,デフォルトで用意されている内容が違っているので,なかなかわからなかったよー.


要は,mod_rewrite の設定(ルール)は,

/etc/apache2/apache2.conf

に書いても効かなくて,

/etc/apache2/sites-available/default

に書くと効く.
なぜなら,デフォルトで用意されている設定で VirtualHost *:80 が設定されていて,mod_rewrite の設定は,VirtualHost の設定を有効にしてあるときは <VirtualHost > ディレクティブの中に書く必要があるから.
VirtualHost を設定して使うつもりがなかったので,デフォルトでそういう設定がされているとは思わなかったよー.


デフォルトで用意されている /etc/apache2/apache2.conf の中で,
Include sites-enabled/
してあった.sites-enabled/ は,/etc/apache2/sites-enabled/ .
debian 系のディストリビューションは,/etc/apache2/sites-available/ に,VirtualHost ごとに設定ファイルを置くようになっている.利用可能な VirtualHost 一覧ということですね.
VirtualHost の有効/無効の切り替えは,/etc/apache2/sites-enabled/ で管理できるようになっていて,/etc/apache2/sites-enabled/ から /etc/apache2/sites-available/ の設定ファイルにシンボリックリンクを張ることでその VirtualHost 設定が有効になる.
デフォルトでは,
/etc/apache2/sites-enabled/000-default
というシンボリックリンクがあり,それが張ってある先は,
/etc/apache2/sites-available/default
でした.

ということで,
デフォルトで用意されていて,
デフォルトで有効になっていて,
デフォルトで読み込まれるのが,
/etc/apache2/sites-enabled/000-default のシンボリックリンク先の
/etc/apache2/sites-available/default
だったのでした.
そしてそれは,
VirtualHost *:80 が設定されていて,
それは <Directory / > なので,意識的に設定せずとも http://(ホスト名)/ 以下全体が VirtualHost となってしまい,VirtualHost ディレクティブ外の /etc/apache2/apache2.conf に mod_rewrite のルールを書いたところで,まったく適用されない,ということだったのでした.


それから,VirtualHost の有効/無効を切り替えるための /etc/apache2/sites-enabled/ のシンボリックリンク操作は,

a2ensite / a2dissite

というコマンドが用意されているので,それを使うのがよいらしいです.

いろいろと勉強になりましたー.


【電子工作の最新記事】
posted by NOIKE at 02:42 | 東京 ☁ | Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック