サーバーをあまりいじったことがないので、
勉強がてらwordpressでブログを作成しました。
パーマリンクの設定後、
記事のページに飛ぶと404になってしまい、
少しハマったのでメモがてら設定した内容をまとめます。
まとめ
- mod_rewriteモジュールを有効にする必要がある
パーマネントリンクで設定したurlからwordpressが記事を在りかを探すため。
-
.htaccess
を編集(なければ作成)する
wordpressが記事の在りかを探すための具体的な内容を記述するため。
環境
- さくらVPS
- CentOS
cat /etc/redhat-release
CentOS release 6.7 (Final)
- apatch
httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Mar 22 2016 19:03:53
- url
手順
パーマリンクの設定@wordpress
割愛
mod_rewriteを有効にする
/etc/httpd/conf/
httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
上記を追加もしくはコメントアウトを外す。
.htaccess
を読み込めるようにする
/etc/httpd/conf/
httpd.conf
<Directory "/var/www/html/blog/wordpress">
AllowOverride All
</Directory>
httpd.conf
が全体の設定、
.htaccess
が個別ディレクトリの設定を制御しており、
AllowOverride All
を記載しないと、
httpd.conf
の設定が優先されてしまい、
.htaccess
がそもそも読み込まれない。
ちなみにAllowOverride All
になっていなかったので、
ぼくはハマりました。
.htaccess
を編集
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
- RewriteBase の初期値は / になっています
設定を反映
service httpd restart
これでパーマリンクが反映された個別記事もきちんと表示されるはず。