お仕事系のお話を備忘録がてら書こうと思います。

先日、あるサイトの制作依頼がありました。 Wordpressでの構築を提案したのですが、サーバーを現在使用しているサーバーで行いたいとのことなので、Wordpressの稼働条件を満たしているか確認。
稼働条件はほぼ満たしていたので、テストサイトを構築し、OK出たので本サーバーへ移設。

mod_rewriteを使用するため、.htaccessファイルを置いた。 ところが、Internal Server エラーが出る。
サーバー管理者? 依頼先に連絡したところ、.htaccess、mod_rewriteは使えるようにしてあるとのこと。 何度かメールでやり取りしても、使えるとのこと。
普通のレンタルサーバーなどでは、ほぼ問題なく設定されているはずだが、どうも自作サーバーっぽい感じなので、何か設定が間違っている可能性もある。

ちょっとラチがあきそうになかったので、状況を自分で確認したところ、 basic認証は動作するが、mod_rewriteは動作しない。 単純なリダイレクトでもエラーが出る。 Options設定を書いてもエラーが出る。

mod_rewriteがオンになっていない可能性があるかもと思い、phpinfoで確認。 ApacheのLoadModuleには追加されている・・・。

とりあえず、状況とエラーログを確認すればわかるので、再度メールしてみたが、何が原因かわからない模様。
自分がサーバーに直接ログインできれば早いのだが、そうもいかないので、とりあえずhttpd.confとエラーログを確認してみてほしいと連絡。 数日経っても連絡がないので、まさかエラーログが分からないのか? と思い、同様の現象の場合がないか探ってみたところ
Aliasで設定された仮想ディレクトリでconfファイルがある場合、そのconfファイル(Virtual confなど)では

Alias /hoge “/home/xxx/hoge"

<Directory “/hoge”>

Options FollowSymLinks

Allow from all

AllowOverride all

</Directory>

となっていて、AllowOverride All となっていても
大元のhttpd.confファイルで

<Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

となっていると、AliasのディレクトリでAllowOverride All となっていても無視されてしまうとのこと。 ここも AllowOverride All にしなければならない。
という記事を見つけた。
っていうか、これWebサーバー構築する上では基本だと思うのだけど。。。
まさかね・・・と思ったけど、この話をメールしてみたところ、すぐに返答があって確認してくださいとのこと。
再度、.htaccessの確認をしたら無事動作した。

つか、mod_rewrite使えるか初めに確認したんだけどなぁ~。
とりあえず、.htaccessの動作がおかしいようなら、記述の間違いが一番ありえるけど、httpd.conf、vhost.confなど内部設定も確認してみましょう。