apache mod_rewriteの設定

2012.03.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

前回まではWordPressの動作までの確認を行いましたが、どうやらmod_rewiteが必要だったらしくApacheの再構築を行いました。--enable-rewrite=sharedを追加です。

service httpd stop
make clean
./configure --enable-so --enable-rewrite=shared --prefix=/usr/local/apache2
make
make install

あとはviでhttpd.confを開いてLoadModuleを追加します。

vi /usr/local/apache2/conf/httpd.conf

下記の記述を追加します。

LoadModule rewrite_module modules/mod_rewrite.so

/usr/sbinの下にhttpd,apachectlが存在していたので、リネームしました。

cd /usr/sbin
mv httpd httpd_org
mv apachectl apachectl_org

シンボリックリンクを作成します。

ln -s /usr/local/apache2/bin/httpd httpd
ln -s /usr/local/apache2/bin/apachectl apachectl

service httpd stop
service httpd start

これで動くかな?と思って確認しましたが、うまくURLが置き換えられずに404 Not Foundとなってしまう。httpd.confといろいろにらめっこして試行錯誤した結果、以下の部分が怪しいと思い、変更してみました。

<Directory "/usr/local/apache2/htdocs">
    #Options Indexes FollowSymLinks ←コメントにしました。
    Options All ←この行を追加しました。
    #AllowOverride None ←コメントにしました。
    AllowOverride All ←この行を追加しました。
    Order allow,deny
    Allow from all
</Directory>

httpd.confを変更後、httpdの停止、起動を行います。

service httpd stop
service httpd start

これで無事URLの置き換えが動作しました。

次回こそは実際にWordPressでコンテンツを登録して、あるサーバソフトウェアで意図した通りにコンテンツ変換できるか?までを実際に検証します。