OrangeGardenRoom

技術系のメモ

WordPressで403と404を表示する(変なやり方編)

このサイトの標準のままだと、「403 Forbbiden」と「404 Not Found」の文字だけ表示されてしまう。
404については、テーマのインストールフォルダ(/wp-content/themes/各テーマ名/)に
404.phpを設置する方法でもできます。(というかテーマに大抵ついてます)
できますが、テーマによってはエラーが出ちゃうときもありますし、デザインが違うものもあります。

基本デザインは同じにできるようですが……。

futuremix – WordPress で 404 Not Found ページを作る
404ファイルに書くのが大変とか、FTP起動して書き換えるのやだ、とかの人用に……。

ブログの固定ページと.htaccessの機能を使ってやります。

.htaccessが使えないサーバだと使えません。

この記事を書いてる段階でのWordPressのバージョンは3.4.2です。

 

 
【手順1】
まず、403と404のページそのものを作ります。
管理メニューの「固定ページ」から新規作成を選びます。

 

【手順2】
403(許可されていないアクセスです)のページを作ります。
題名に”403 アクセスが許可されていません”などを入れ、
本文にファイルが見つからない等の文章を入力します。

 

【手順3】
右上の「表示オプション」から”ディスカッション”のチェックを入れます。

 

【手順4】
本文入力画面の下にディスカッションの項目ができるので、
“コメントの投稿を許可する”と”このページでトラックバックとピンバックを許可する”の
チェックを外します。

こうすることで、これらのページにとんだときに不自然なリンクを消せます。

 

【手順5】
【手順1】~【手順4】と同様に404(ファイルが見つかりません)のページを作ります。

 

【手順6】
次に、許可されてないアクセスの時に403のURLへ、
また、ファイルが見つからないときに404のURLへ飛ばす設定をします。

まず、上記固定ページの”パーマリンク”を調べます。
調べ方は、固定ページの編集画面に入り、題名入力のすぐ下にあります。

このサイトですと、以下のようになります。

403 … http://blog.grandaria.com/?page_id=11
404 … http://blog.grandaria.com/?page_id=6

 

【手順7】
.htaccessのファイルを作ります。

2ページの実URLが以下であると仮定します。
403 … http://www.samplesite.com/wordpress/?page_id=2
403 … http://www.samplesite.com/wordpress/?page_id=3
Windows標準のメモ帳(もしくは何らかのテキストエディタでも構いません)で、
以下のように文字を入力します。

ErrorDocument 403 /wordpress/?page_id=2
ErrorDocument 404 /wordpress/?page_id=3

最後に2,3個改行を入れてください。

その後、名前を付けて保存で、.htaccessと名前を付けます。

 

【手順8】
このファイルをアップロードします。
FFFTP等のクライアントソフトを使ってアップロードしてください。

この際、ファイルが”.htaccess.txt”になっていると思います。
このファイル名を変更して、”.htaccess“となるように、
末尾の.txtを削除して、変更確定します。

その後、WordPressインストール場所の直下(wp-adminやwp-contentフォルダが
ある場所です)に、アスキーモードにてアップロードします。

 

【手順9】
この時点で、WordPressインストールされた場所以外にアクセスした場合、
固定ページで作成した403のページへ飛ぶと思います。

ですが、おそらく固定ページのリストが画面上部及び下部に表示されていることがあります。
その場合、それを消さないとちょっと見た目が悪くなってしまいます。
(他の固定ページを開いた場合、403と404のページのナビゲーションが出る)

表示がされないテーマもあります。
標準で入っているtwentytenには表示がされません。
次はこれを表示しないようにします。

 

 

【手順10】
FFFTP等で、以下の場所を開きます。

/WordPressのインストールフォルダ/wp-content/themes

ここにWordPressのテーマ一覧があります。
標準のtwentytenにはないので、このブログのデザインである
Orange and Blackを例にとります。

現在使っているテーマ毎に表示方法やファイリングが違うので頑張って見つけてください。

 

【手順11】
テーマのフォルダの中に入ると、いっぱいphpファイルがずらっ、と並んでます。

この中からある部分を探すのですが、改行コードがLFというのになってます。

特に詳しくは述べませんが、Windowsのメモ帳で開くと、改行がされずにずらららと並ぶ状況になります。
なので、見るときに、テキストエディタというものを使います。

窓の社やVectorなどで検索して頂ければいっぱい出てきますが、
無料で使いやすいところで、僕はTerapadを使ってます。

インストールはこちら → 窓の社 – Terapad
てきとーにインストールしてください。

その後、使っているテーマの中のファイルを全部ダウンロードします。
Terapadを起動し、マイドキュメント等からこの中身をダウンロードしたところを開き、
起動したTerapadの上に、phpファイルを、ドラッグアンドドロップして表示していきます。
この中から、以下のような部分を見つけます。

wp_list_pages(‘sort_column=menu_order&title_li=&link_before=&link_after=&depth=3’);

検索(Ctrl+Fもしくはメニューの検索(S)→検索(F))で、”wp_list_pages”を探すとやりやすいです。
大抵header.phpとかfooter.phpの中に入ってる気がします(気がするだけ)。
Orange and Bladkでは、function.phpの中に入ってました。
”の中は何が入っているかはテーマ次第です。
ここに追加する形で以下のようにします。

wp_list_pages(‘sort_column=menu_order&title_li=&link_before=&link_after=&depth=3&exclude=6,11’);

追加部分は、”&exclude=6,11″です。
この6と11というのはパーマリンクのpage_id=の後ろの部分です。

このサイトだと、6は404、11は403のpage_idです。
ページナビゲーションを出したくないpage_idをここにカンマ区切りで入力します。
1か所だけじゃないかもしれません。
実際のページを見て、リンクが表示されてる箇所を確認してください。
Orange and Blackだと2か所(ヘッダ部分とフッタ部分)にありました。
(function.phpに両方の記述がありました。)
この編集を行い、名前を付けて保存します。
そして、編集したファイルだけをアップロードします。
できたら、ページを更新して確認します。
きえてたら完了です。

 

 

 

以上です。

慣れていれば10分程度の作業ですが、
テキストエディタって何……?という人には時間がかかる……かもしれません。
あともっと簡単な方法あるかも。

ここまでするなら、404.php触ればいいよね、って話でもあります。
(HTMLソースコピーしてちょっと変えればそのまま動いちゃうからね)

 

僕がこうやって作ったので、後々忘れないようにするメモの意味が大きいです。

誰かの参考になれば。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です