【WordPress上級者編】プラグイン「Custom Permalinks」の使い方と、404(not found)エラーになったときの対処方法


今回の記事は、少し難しいです。
WordPressをご自身で構築し、サーバーの情報をさわって作業できる人向けです。
この記事の目次
パーマリンクの設定が自由になるプラグインCustom Permalinks


▼パーマリンクとは
基本設定として以下の中から選べます。
ただし、基本設定を1つ選んでしまうと、どのページも同じルールのもと、ページ名が決まってしまいます。
- たくさん書くブログ記事を毎回リネームする手間を省きたい…
- けれど、ページ名にこだわりたい場合もある…
このような要望もありますよね。
そんなときに便利なプラグインが「Custom Permalinks」です。
Custom Permalinksを導入方法
- プラグイン>新規追加で「Custom Permalinks」を検索します。
- 見つかったら「今すぐインストール」「有効」とボタンを押してください。
- Custom Permalinksを入れて、ページ名のリネームをする場合、まず先にWordPressの設定>パーマリンク設定>で「基本」を選択し更新しておきましょう。
- ページ名をリネームする場所は以下の画像の赤枠内を参照してください。
英数半角でのアルファベットで入力しましょう。
お尻に「/」(スラッシュ)を入れるのを忘れずに。
Custom Permalinksは、ダッシュボードのサイドバーにも項目として登場します。
カテゴリーのパーマリンクも変更できます。
一覧では、リネームしたページ一覧がみれます。
Custom Permalinksでリネーム後の注意点
ただし、導入するサーバーによっては、いざリネームしてみると、該当ページが404エラー(not found)の状態となる事態が勃発します。

その際はWordPressが入っているディレクトリ直下の.htaccessを編集します。
Custom Permalinks利用時は.htaccessを編集する必要があることも
404エラーとなり、ページ不明状態になる原因は、WordPress直下の「.htaccess」に以下の内容に、リダイレクトやパーマリンクを設定できる「部品」となるモジュールが記述されていないためでした。
以下、コピー&ペーストでご利用ください。
.htaccess
1 2 3 4 5 6 7 8 | <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> |
本来、WordPressの注意書きだよ!と宣言している
1 2 3 | # BEGIN WordPress # END WordPress |
の間に記述したいところですが、敢えてこの欄外に記述してください。
理由は後述します。
さて、mod_rewriteからはじまる記述の意味は、
- mod_rewriteというモジュール(=部品)が使用可能です
- ファイルが存在しません
- ディレクトリが存在しません
という上記にあるすべての条件に当てはまるリクエストは、すべて「/index.php」を参照して下さい。
という内容です。
.htaccessの編集方法
FTPでサーバーに入れる場合
FTPでサーバーに入れる方は、直接.htaccessをWordPressが格納されているディレクトリ直下からダウンロードして編集しましょう。
マシンによって編集できない場合もあります。
そんなときは.htaccessをhtaccess.txtのようにリネームして編集します。
再びFTPでアップロードし、FTP上でリネームしましょう。
レンタルサーバーによっては、オンラインサーバー上で.htaccessを編集できる
各レンタルサーバーも、WordPressユーザーが増えてきているためか、オンライン上で.htaccessファイルを編集できるように手配してくれているところが多いです。
代表的なレンタルサーバー各社のマニュアルをリンクしておきますね。
▼エックスサーバー
▼ロリポップ
▼さくらインターネット
「mod_rewrite」の役割
「mod_rewrite」は、ブログやウェブサイトのURLを「rewrite(書き換える)」ためのモジュールです。

意味がわかると、理解しやすい!
WordPressは、パーマリンク構造設定でURLの表示を方法を変更できます。

.htaccessにmod_rewriteの記述がないと、パーマリンクが変更されないのです。
.htaccessの意味合い
.htaccessは、このファイルを置いたディレクトリ、およびその下層(サブディレクトリ)以下にのみ設定が適用されます。
そのため共用サーバーであれば、それぞれのユーザーのディレクトリに置いた.htaccessを編集することで、共有サーバーの他のユーザーには影響を与えずに処理を行えます。
.htaccessが書き換えられてしまった場合
WordPressの更新などで、.htaccessが書き換えられる現象があります。
それを防ぐ一番の方法は上述いたしましたが、# BEGIN WordPress〜# END WordPressの欄外にmod_rewriteの記述を書くことです。
こうしておくと、WordPressの更新に影響を受けません。
まとめとして

プラグインの不具合は起こることがあります。
そんなときは原因究明してファイルを書き換えたりなどの作業が発生しますが、必ず「バックアップ」を取った上でおこないましょうね!
おもてなしブログ®︎最新情報はメルマガから

3ヶ月でブログを24時間働く営業マンに!おもてなしデザイン®︎専門家/デザインも手がけるWebコンサルタント。2001年よりWeb制作の道に入り、デザイナー、ディレクターを経験したのち、2007年に独立。現在はデザインも担当しながら、Web集客からの売上アップを支援。お客様のペルソナのニーズを先取りし「デザインはおもてなしである」をコンセプトにサイト構築を手がける。自らのブログも含め、構築してきたブログ/Webサイトは500件以上。お客様の不安やお悩みを解決し喜ばせるブログで、ブログ読者様を「おもてなし」することを推奨。どうすればクライアントのビジネスにおいて、確実に集客できて売上アップにつながるのかを日々実践・探求し情報を発信している。