パーマリンクとは
https://ドメイン名/記事名
のようにURLを記事名で指定するものです。SEO対策では必須でありブログを成長させる上で大切な設定です。
404エラーの対処法 通常の場合
wordpressに記事を投稿済みの状態でパーマリンクの設定を変更すると投稿していた記事が開けなくなり「404 Not Fund]というエラーメッセージが表示されることがあります。ネット上でも同じエラーに苦しんでいる方が多くいて、解説サイトも多々あるので、まずはそちらを参照してください。
404エラーの対処法 ubuntuで構築された方向けの対処法
お待たせしました。上記方法でも404エラーが解決しなかった方向けに対処法を解説したいと思います。私もいろいろ設定をいじりましたがパーマリンクが反映されず苦しんだので忘備録としてこの記事を残したいと思います。
まず前提条件として使用環境は下記のとおりです。
サーバー:VPSサーバー
使用OS:ubuntu
WEBサーバー:Apache2
上記「404エラーの対処法」サイトでも説明されていますがパーマリンクの設定をするとサーバー上に.htaccessというファイルが生成され、この設定ファイルが機能することでリンク先を開けるようになっています。
そして.htaccessファイルを正常に機能させるためには下記2つの設定が必要となります。
VPNサーバーでwordpressを構築されており、.htaccessファイルの設定が正しいのに404エラーがでる場合は下記設定が正常に行われているか確認する必要があります。私はapache2.confの設定不足が原因で.htaccessファイルの設定が反映されていませんでした。
・mod_rewriteの設定
・httpd.confもしくはapache2.confの設定
mod_rewrite
mod_rewriteはapacheで利用されているモジュールでURLのリダイレクト処理をしています。
.htaccessはリダイレクトのルール記載した設定ファイルなのでこのmod_rewriteが正常動作していないと.htaccessの設定も反映されないようです。
mod_rewriteが利用可能か確認するコマンド実行します。
cat /etc/apache2/mods-available/rewrite.load
実行後、LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.soと表示されれば利用可能です。
その後、mod_rewriteを動作させるコマンドを実行します。
sudo a2enmod rewrite
apacheの再起動を実行します。
sudo service apache2 restart
以上でmod_rewriteの設定は終了です。
httpd.conf or apach2.confの設定
他のOSの場合はhttpd.confですがubuntsuの場合はhttpd.confがないため、apache2.cpnfに設定が同等の設定ファイルとなります。
etc/apache2/apache2.confファイル中の下記箇所
AllowOverrideがNoneになっている場合はALLに変更します。
・編集コマンド
sudo vim apache2.conf
・apache2.confの内容
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
以上で設定は終了です。「404エラー」が解消させているかと思いますのでサイトを確認してみてください。
このapache2.confはサーバーのディレクトリの設定となっており、NoneからALLにすることでディレクトリ/var/www以下に設置した.htaccessファイルの設定変更を許可します。
私はこの設定がNoneになっていたので.htaccessの設定が反映されませんでした。
まとめ
wordpressのパーマリンク設定時の404エラーについて苦労したので忘備録としてまとめてみました。
僕と同じようにVPSサーバーや自宅PCを使ってwordpressを構築された方は今回のように設定で困る
ことが多々あると思います。そんな方の役に立てれば幸いです。
コメント