ワードプレスのパーマリンク変更、リダイレクト.htaccess
どうしてもワードプレスでパーマリンクが気になったのでリダイレクト設定をしてパーマリンクを変更してみました。いくつか失敗した経験をふまえてこの方法を紹介します。
プラグインを使っても一つずつ設定しないといけなく面倒そうだったので直接 .htaccessファイルを作ってリダイレクトします。
ただしエックスサーバーだと.htaccessファイルをアップロードする場所がちょっと違うみたいです。130記事になりますが思い切って変更してみました。
今回パーマリンクを「postID.html」から「投稿名」のみに変更しました。
調べてみるとhtaccessファイルを作ってリダイレクトするのって意外と簡単なんですよ。
http://nekonomemo.net/wordpress-permalink-redirect/
http://webshufu.com/calc-and-get_posts-makes-redirecting-ease/
この方のやり方で作りました、失敗して上手くいかなかった部分も交えてやり方を紹介します。
使う物はFFFTPなどのファイルをアップロードするソフトと何でもよいので表計算ができるエクセル形式のソフトかサービスだけです。今回はOpenOfficeを使いました。
まず基本でリダイレクトの文章形式は
リダイレクトの書き方は
Redirect permanent[半角空白]「リダイレクト前のドメインを除いたURL」[半角空白]「リダイレクト先のURL(ドメインも入ったURL)」
です。
見難いので少し変えると
Redirect permanent 元URL 先(ドメイン込み)URL
です。
一行ずつ書くと面倒なのでエクセルで
A列にRedirect permanentを、
B列とDに半角スペースを、
C列にリダイレクト前のドメインを除いたURLを、
E列にリダイレクト先のURL(ドメインも入ったURL)
と入れる方法で.htaccessを簡単に作ってしまおうと言うわけです。
C列にリダイレクト元URL
記事の数が分かりやすいように、ここから入力します。
まず記事リストを作るためのコードを作ります。
そして新規投稿を開き編集画面からその記事のIDを確認します。
下書きで保存するとURLにpost=123などIDが表示されます、この場合123がIDですね。
このIDを↓のコードの○○の部分に入れます。
<?php if(is_single('○○')){?> <ul> <?php global $post; $args = array( 'numberposts' =>10000); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?> <li><?php the_permalink(); ?></li> <?php endforeach; ?> </ul> <?php } ?>
IDを入れたらこのコードをコピーして、テーマ編集にあるsingle.phpの最後に貼り付けます。
私の場合はsingle1.phpでした、実際に書いた投稿のテンプレートになるphpですね。
投稿編集画面に戻り、プレビューで記事を表示させると、コードを貼り付けた場所に現在の記事のリストが現れます。
タイトルに何か入れないと表示されなかったりするかもしれません。
↓こんな感じに表示されるのでその部分をコピーします。
最初のURLの文頭をクリックして最後のURLの文末をShift+クリックするとまとめて選択できますね。
↑こんな感じに表示されたリストをエクセルのC列の最初に貼り付けます。↓
この状態からドメインを除くために編集→「検索と置換」を開き、ドメインを入れます。
私の場合 http://reiria-news.com ですね。
そして「すべて検索」をクリックして「すべて置換」をクリックするとすべての行からドメインが除かれます。
ソフトによっては「すべて置換」だけで良かったり、先頭のURLだけドメインが残っていることもあるので確認します。
A列にRedirect permanent
Aの列に Redirect permanent を入力してURLの量分下までコピーします。
セルの右下にカーソルを合わせて、+が表示されたところで下までドラッグすると簡単にできますね。
BとDに入れる空白
一番上のセルに半角のスペースを入力して同じように下までコピーします。
E列にリダイレクト先URL
ここでパーマリンクを変更しますが、上手くいかなかったときのために変更前の設定はメモしておきましょう。
そしてもう一度、先ほどの記事でプレビューを表示させると今度は新しいパーマリンク変更後のURLのリストが表示されるので、コピーしてEの列に貼り付けます。
注意するのがドメインを除かないでそのままにすることです、これで一度失敗しました。
.htaccessの作成とアップロード
これで完成なのでこれを.htaccessに貼り付ける作業です。
直接.htaccessのような名前のファイルは作れないので、テキスト(メモ帳)を開くか新規作成して、名前を付けて保存で.htaccessの名前にすると作成できます。拡張子を表示させていなかったらできないかもしれません。
このファイルを開くときもメモ帳で開くようにすると良いです。
.htaccessファイルにエクセルに書いた内容を全て選択してコピーペーストします。
選択するときにはCtrl+Aで全て選択ができます。
ここで形式を再度確認します。
Redirect permanent 元URL 先(ドメイン込み)URL
場合によって半角スペース1つのところにインデントやスペースが複数入っていることがあります。
いくつも入っている場合はエクセルでBとDの列を削除して手動で半角スペース1つに変更します。
私の場合130記事変更しましたね。
これをFFFTPでドメイン直下にアップロードするのですが、私の場合は場所がそこではなくワードプレスがインストールされている「ドメイン/public_html」の中でした。
私の場合すでに.htaccessファイルが存在していたので一度その.htaccessファイルをデスクトップなどにダウンロードしてから、文末に先ほどのリストを貼り付けました。
これでリダイレクト設定の完了です。
正常にリダイレクトできていればリダイレクトされていることも分からない速度です。
私はここでも上手く表示されず、Ctrl+F5で更新しても表示されず。
ブラウザから履歴、キャッシュを削除することでやっと表示されました。
私が上手くリダイレクトできなく失敗した原因の3つは、
リダイレクト先でもドメインのURLを除いていたこと
アップロード先がドメイン直下でなくpublic_htmlだったこと
ブラウザのキャッシュを削除しないと表示されなかったこと
この3つにすごく悩まされました、特にアップロード先ですね。
エックスサーバでない場合はドメイン直下にワードプレスがインストールされるみたいなんですよね。