Windows + Apache + htaccess + RewriteRule

2017年10月28日

かなーり専門的なお話です。 

CGIやPHPなど、WEBプログラムを作る場合に、ローカルパソコン(自分のパソコン)でチェックしてからサーバーにUPします。
それは、プログラムのミスなどで共用で使用しているサーバーに過大な負荷をかけてしまうなどの問題を事前に回避するためです。

多くのサーバーのOSはLinux。多くのローカルパソコンのOSはWindows。

そのため、環境をそっくりにしようとしてもナカナカうまくはいきません。

とくにapacheサーバーの特徴である.htaccessがうまく使えない…。
.htaccessは、動的ページを静的ページに見せるために、よく使っています。
しかし、ローカルパソコン上でうまく動かせなくて「サーバーにアップしてテスト」という実に非効率な作業を行っていました。

それに嫌気がさしたのでアチコチのサイトを調べながら、ようやく動かせるようになったので備忘録として記しておきます。

変更すべきは、アパッチのコンフィグファイル

C:\Program Files\Apache Group\Apache\conf\httpd.conf

このファイルの中の…
 ●次のコメントを外す
 182行 LoadModule rewrite_module modules/mod_rewrite.so

 ●次の部分を変更する
 ※DocumentRoot "C:/site_dir"の少し下あたり…
 <Directory "C:/site_dir">と<Directory>の間にある
        AllowOverride None ⇒ AllowOverride Allに変更
 395行 AccessFileName a.htaccess ※任意の名前を設定
 409行 <Files ~ "^a\.ht"> ※上の名前を正規表現で示す

正規表現が判らなかったら、AccessFileNameと同じにして、コロンの前に\をつければOK。

以上。

私の場合、これでうまくいった。
後は、目的のディレクトリー内にa.htaccessを設置すればOK。

RewriteRuleに関しては、ネット上に沢山資料がありますから探してみてください。