「パーマリンクに、常にドメイン名が表示される様にしました。」
と言っても、ほとんどのサイトは普通そうなっています。
ところが当サイトのパーマリンクは、
http://march-brown.sakura.ne.jp/2013/09/○○○.php
となっており、ドメイン名「hibinokizuki.com」が表示されません。
このブログの場合、借りているサーバの初期ドメインmarch-brown.sakura.ne.jpの直下に、blogwpというディレクトリを作り、そこにブログを展開しております。
そしてこのblogwpというディレクトリを対象に、ドメインhibinokizuki.comを設定しています。
ちなみにwordpressの本体は、blogwpと同じ階層のディレクトリにあります。
このような構造でプログを構築しているためか、せっかく独自ドメインhibinokizuki.comがありながら、トップページ以外のパーマリンクには、ドメイン名が表示されません。
今回このパーマリンクを、
https://hibinokizuki.com/2013/09/○○○.php
と表示されるようにしました。
独自ドメインが表示されるだけでなく、より短いURLになるのでSEO的にも有利であるとの判断からです。
このような表示にする事自体は簡単でした。
- WordPressの「一般設定」で、「Site Address (URL)」をhttps://hibinokizuki.comに設定する。
- 「パーマリンク設定」で、「カスタム設定」を/%year%/%monthnum%/%postname%.phpとする。
- 「パーマリンク設定」で指定されるとおりに.htaccessファイルを書き換える。
これで完了です。
問題なのは、変更前のパーマリンクhttp://march-brown.sakura.ne.jp/2013/09/○○○.phpへのアクセスを、新しいパーマリンクhttps://hibinokizuki.com/2013/09/○○○.phpに転送(リダイレクト)する事です。
ネットで「パーマリンク変更」「ドメイン変更」「リダイレクト」を検索すると、おびただしい量の情報が出てきます。
しかし、.htaccessファイルの知識が乏しく、かつ上記のようなディレクトリ構造でブログを構築しているため、なかなか正解が見つかりませんでした。
その結果リダイレクト出来ない状態で、1週間が過ぎてしまいました。
前のエントリーでお詫びしました様に、その間に650以上のアクセスをエラーにしてしまいました。重ねてお詫び申し上げます。
結論を先に言うと、blogwsに置いた.htaceessに
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /blogwp RewriteCond %{HTTP_HOST} ^march-brown.sakura.ne.jp [NC] RewriteRule ^(.*)$ https://hibinokizuki.com/$1 [R=301,L] RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
と記述して、301リダイレクトがうまく機能しました。
301リダイレクト[R=301]とする事で、検索エンジンに、ページが新しい場所へ完全に移動したことを伝えます。
WordPressの「パーマリンク設定」で指定された内容に、03〜05行目を追加しました。
ネット上の数ある情報の中で、ここまで導いて頂いたサイトは、下記のとおりです。
この場で深くお礼致します。
記
◆「高橋文樹.com」さんの「.htaccessの正体見たり、枯れ尾花」
.htaccessとはなんぞや、というところから、.htaccessの基礎を教わりました。
”!”や”^”や”.”の意味も、ここで教わりました。
◆「Web担当者フォーラム」さんの「ApacheウェブサーバーのRewrite設定で使える正規表現サンプル集」
私がやるべきなのは、結局「ドメイン名以下のURLはすべて同じ構成で、ドメイン名だけを変更する。その際には301リダイレクトさせる。」であるという事を、ここで悟りました。コードもここでのサンプルコードをベースにさせてもらいました。
◆「murak.net」さんの「WordPressが自動的に書く.htaccessに追記する方法」
「WordPressが自動的に書く.htaccess」の意味は、前出の「.htaccessの正体見たり、枯れ尾花」に噛み砕いた説明があります。それを理解した上でこのエントリーを読むと、.htaccessの何処にコードを追加すれば良いかが分かりました。同じコードでも、記述する場所が違えば動きませんでした。
他にも参考になるサイトは数多くありましたが、私の場合は上記3サイトの情報が、最も有用でした。