初めてwordpressのコーディングをした時にも陥ったのですが、久しぶりにコーディングした時にもまた同じ堰を踏みそうなのでメモとして残します。
例えばブログを書いて、投稿する前にプレビュー画面でどのような見た目になるか確認しますよね。
その時に「ページがありません」とかプレビューできなかったりすると、結構焦るものです(笑)
だいたいは以下を試せば解消いたしますので、ぜひ試してください。
1.「wp-config.php」の認証用ユニークキーを再生成して書き換える
まずwp-config.phpというのは、wordpressのルートディレクトリにあるファイルの1つで、サイトの基礎となる構成情報が含まれる、かなり重要なファイルです。
その中の認証用ユニークキーをそのまま使っているとこのような症状が出ることがあります。(ちなみに認証用ユニークキーの役割は「Cookie情報の暗号化」をしてくれるもののようです)
以下のURLをクリックすると新しい認証ユニークキーが生成されますので、画面に表示されたものをコピーしましょう。
https://api.wordpress.org/secret-key/1.1/salt/
※wp-config.php内の認証用ユニークキーの場所は、テキストエディタなどで「ユニークキー」などの文言で検索するとヒットします。
※重要なファイルはあらかじめファイルをコピーするなどしてから編集しましょう。
2.「.htaccess」が無い、記述がおかしい可能性がある。
.htaccessとは
・IDとパスワードによる制限
・IPアドレスとリモートホストによる制限
・フォルダ単位でのリダイレクト
・wwwあり、wwwなしなどのURLの統一
・Basic認証によるページへのアクセス制限
という感じに、サーバ設定をユーザ自身が自由に設定することができて、重要なファイルの保護などもできるありがた〜いファイルです。
通常は見えないファイルになっているので、まずは見えるように設定します。
「ターミナル」を開き
defaults write com.apple.finder AppleShowAllFiles -boolean true
killall Finder
1行ずつペーストしてenterキーを押します。
そうすると見えないファイルが見えるようになるので、ルートディレクトリの中で.htaccessを探してみてください。
無かった場合=テキストエディタで下記の内容の入ったファイルを作成し、保存するときにファイル名を「.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
ルートディレクトリにあった場合は
# 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
これでプレビューできるかどうか確認してみてください。
最後に「ターミナル」で見えないファイルをもとに戻します。
defaults delete com.apple.finder AppleShowAllFiles
killall Finder
私はこれで問題なくプレビューされました。とはいえ様々な条件で動くのがシステムなので、それでもプレビューされなかった場合は、何か重要な問題があると思います。