WordPressでパーマリンクを設定するのは欠かせませんよね。

どのパーマリンクがSEO的に理想なのか、どのパーマリンクが美しいのか・・・というのは個人的には永遠のテーマなのですが、それは今回は置いておいて、パーマリンクを設定したときに起こるエラーについて書こうと思います。

どこでどんなエラーが出たのか

パーマリンクを変更したらエラーになるというのは、本当によくあります。僕も何度もあります。

今回エラーが起こったのは記事ページでした。事前にパーマリンクを設定して、その後1記事目を書き上げてからドーンと公開!初めての記事は綺麗に表示されているかなっとその作成したばかりの記事ページを開くとエラーが出たというわけです。

エラーの内容は

Internal Server Error

です。通称、500エラーですね。サーバー内部のプログラムや設定にミスがあった場合に起きるエラーです。ファイルが見つからない『Fot Found』の404エラーとともにWEB2大エラーです。

Internal Server Errorとともに英語でなんか説明が書いてあります。

The server encounterd an internal error or misconfiguration andwas unable to complete your request.

なんて書いてあるんでしょう。無駄にグーグルで翻訳するのが好きなので、この文章も念のために翻訳してもらうと、『サーバーで内部エラーまたは構成ミスが発生し、要求を完了できませんでした』でした。

これくらい翻訳してもらわなくてもスラッと読みたい。

エラーの原因は?

パーマリンクを設定して記事ページを開くとInternal Server Errorのエラーになる。しかしTOPページや管理画面は正しく表示される。パーマリンクを初期設定(基本)に戻すとまた記事ページが表示される。

この場合は、パーマリンクを設定した時にうまく.htaccessファイルがパーマリンク設定の内容を上書きしていないことが考えられます。

一応「.htaccessファイルって何だ?」という人のために超簡単に説明します。

.htaccessファイルというのはサーバーの設定ファイルです。この設定ファイルにWordPressで設定したパーマリンクを書き込むわけです。これだけわかれば十分です。

ちなみに、この「.htaccess」の最初の「.(ドット)」は隠しファイルという意味で「一般ユーザーには関係ないから気にしないで」ということです。ファイルの頭に「.」がついていると設定によったらファイルブラウザで表示されなかったり、薄く表示されたりします。

とにかくエラーを直して、記事を表示させるには?

htaccessファイル
パーマリンクをもう一度設定してみて、それでもエラーが出続ける場合は新しく.htaccessファイルをいちから作るのが手っ取り早いです。

まずは現在サーバーにある.htaccessファイルをバックアップします。通常、.htaccessファイルはWordPressをインストールしたルートフォルダにあります。

バックアップファイル名は何でもいいですが、名前をBKUP.htaccessとでもリネームしておくといいです。

もし.htaccessファイルが見当たらない人は、使っているFTPソフトの設定で「隠しファイルを表示しない」ようになっているので、設定で隠しファイルを表示するようにしてください。

そして、新しい.htaccessファイルを作成します。メモ帳やテキストエディタで次の内容をコピペします。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

これはWordPressの.htaccessの基本形です。

出典:WordPress Codex 日本語版

ファイル名はとりあえずhtaccess.txtのように保存しておくといいです。

そうして作成したhtaccess.txtファイルをもともと.htaccessファイルがあったルートフォルダにFTPでアップロードします。アップロード後にhtaccess.txtを.htaccessへと名前を戻します。

その後、管理画面からもう一度パーマリンクを設定してみてください。その後、記事ページを表示してみると、正しく表示されると思います。

まとめ

ここでご紹介した手順でうまく直ればいいですが、直らない場合は他の原因も考えられます。書き込みの権限がないとか・・・。

まぁ、うまくいかない場合はとりあえずバックアップとして置いておいたBKUP.htaccessファイルをもとに戻して、コーヒーでも飲んで一息ついてゆっくりと考えましょう。