2019年1月30日・初期サブドメインから独自ドメインへリダイレクトするコードも追記しました・
第5回目となる講座は「.htaccess」の設定です。
コードを入力することで、サーバーをいろいろと制御できるファイルです。
当サイトでおすすめしている「MixHost 」以外のサーバーをご契約の方は、今回の設定は当てはまりませんのでご了承ください。
すこーし専門用語多めになりますが、全部を理解しなくとも設定だけしっかりやっていただければ構いません。
そもそも「.htaccess」の設定は中級者以上の項目ですが、当サイトの「WordPress講座」は素人サイトの脱却がコンセプトなので、サクッとやっていきましょう。
今回「.htaccess」で設定するのは以下の3つです。
- https://リダイレクト設定
- URLの正規化
- 管理画面へのアクセス制限
えっ??これだけでいいの?と思ったかもしれません。
他のサーバーだと「キャッシュ」やら「gzip圧縮」やらもあるのですが、当サイトでおすすめしているサーバー「MixHost 」では「LiteSpeed Cache」プラグインを使えるので、大抵の機能はすでに実装されています。
目次・読みたい所へタップできます
mixhostの.htaccess設定①【https://リダイレクト】
「【脱初心者】強いWordPressブログの始め方を図解で解説」でURLのSSL化(https://〜)を行いました。
ただユーザーがURLからアクセスしたり、参考リンクを貼るときに「http://〜」のSSL化されていないURLを使われる場合があります。
その場合でも「https://〜」の方に飛ばすよう設定します。
こうすることで、常にSSL化されたサイトを表示できるようになるわけですね。
試しに当サイトを「http://kagesai.net」でアクセスしてみてください。「https://〜」表示されるはずです。
「LiteSpeed Cache」なら「.htaccess」を管理画面から設定できるので楽チンです。
まず、コードをミスっても復旧できるようトップページのタブを複製しておきましょう。
- Macユーザー⌘command + l(エル)で検索バー選択後command + shift + enterでタブ複製
- Windowsユーザーctrl + l(エル)で検索バー選択後alt + enterでタブ複製

「LiteSpeed Cache」にマウスホバー
↓
「.htaccessの編集」をクリック

「# BEGIN LSCACHE」の上に以下のコードを追記してください。
.htaccesscopyする<IfModule mod_rewrite.c> RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule>
以下のようになればOK
一番下までスクロールして設定を保存をクリック
コードを追記するごとに、複製した別タブで「トップページ」と「記事」が表示されてるか確認してください。
コードミスがあると、表示されなかったり、404エラーページになります。
その場合は一旦コードを削除して、もう一度設定を保存をクリックすれば元に戻ります。
mixhostの.htaccess設定②【URLの正規化】
「MixHost」の場合、SSL化したサイトは何もしないとURLが以下のように分かれています。
URLが分かれた状態とは、力(ドメインパワー)が分散されるイメージになります。
そこでどのURLからアクセスしても「https://ドメイン」になるように統一します。(上記リンクは統一してあります。)

契約時に設定したドメインです。(ここは各自違うのでご注意くださいませ〜)
「MixHostにログイン」して確認してください。
追記:最初からmixhostでドメインを取得した方は、初期サブドメインの設定は不要です。
以下のコードを先ほどの「</IfModule>
」の下に追記してください。
.htaccesscopyする<IfModule mod_rewrite.c> RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule> Options +FollowSymLinks RewriteEngine on <!-- wwwなしに統一 --> RewriteCond %{HTTP_HOST} ^www\.kagesai\.net$ RewriteRule ^(.*)$ https://kagesai.net/$1 [R=301,L] <!-- index.html(php)なしで統一 --> RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ https://kagesai.net/$1 [R=301,L] <!-- 初期サブドメインから独自ドメインへ --> RewriteCond %{HTTP_HOST} ^kagesai\.初期サブドメイン\.mixh\.jp$ [NC] RewriteRule (.*) https://kagesai.net/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www\.kagesai\.初期サブドメイン\.mixh\.jp$ [NC] RewriteRule (.*) https://kagesai.net/$1 [R=301,L]
赤字部分
をご自身のドメインに変更緑字部分
はご自身の初期サブドメインに変更※mixhostでドメインを取得した方は、初期サブドメインから独自ドメインへ
から下は不要です。
「.
」と「\
」の位置に注意してください。
設定を保存をクリックしたら、トップページと記事を確認。
mixhostの.htaccess設定③【管理画面へのアクセス制限】
ここは少し難易度が上がります。
WordPressの初期状態は、ログイン画面へのURLが以下のように決まっています。
「https://ドメイン/wp-login.php」
つまり相手のドメイン名が分かれば、ログイン画面まではいけてしまうわけです。

WordPress管理者ログイン画面
本来ログイン画面は自分以外に見せるものではありません。
もちろん「ユーザー名」と「パスワード」が分からなければ、ログインされることはありませんが、どうせなら「ログイン画面」のアクセスも防止しておきましょう。
以下のコードを先ほどの「RewriteRule ^(.*)index.html$ https://kagesai.net/$1 [R=301,L]
」の下に追記してください。
.htaccesscopyする<IfModule mod_rewrite.c> RewriteCond %{HTTP} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule> Options +FollowSymLinks RewriteEngine on <!-- wwwなしに統一 --> RewriteCond %{HTTP_HOST} ^www\.kagesai\.net$ RewriteRule ^(.*)$ https://kagesai.net/$1 [R=301,L] <!-- index.html(php)なしで統一 --> RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ https://kagesai.net/$1 [R=301,L] <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^enter/?$ /wp-login.php?abcd1234 [R,L] RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$ RewriteRule ^dashboard/?$ /wp-login.php?abcd1234&redirect_to=/wp-admin/ [R,L] RewriteRule ^dashboard/?$ /wp-admin/?abcd1234 [R,L] RewriteRule ^register/?$ /wp-login.php?abcd1234&action=register [R,L] RewriteCond %{SCRIPT_FILENAME} !^(.*)admin-ajax\.php RewriteCond %{HTTP_REFERER} !^(.*)https://kagesai.net/wp-admin RewriteCond %{HTTP_REFERER} !^(.*)https://kagesai.net/wp-login\.php RewriteCond %{HTTP_REFERER} !^(.*)https://kagesai.net/enter RewriteCond %{HTTP_REFERER} !^(.*)https://kagesai.net/dashboard RewriteCond %{HTTP_REFERER} !^(.*)https://kagesai.net/register RewriteCond %{QUERY_STRING} !^abcd1234 RewriteCond %{QUERY_STRING} !^action=logout RewriteCond %{QUERY_STRING} !^action=rp RewriteCond %{QUERY_STRING} !^action=register RewriteCond %{QUERY_STRING} !^action=postpass RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$ RewriteRule ^.*wp-admin/?|^.*wp-login\.php /not_found [R,L] RewriteCond %{QUERY_STRING} ^loggedout=true RewriteRule ^.*$ /wp-login.php?abcd1234 [R,L] </IfModule>
abcd1234
6箇所を指定することでログイン画面のURLを変更できます。
パスワードと同じく、なるべく複雑なものにしましょう。(メモを忘れずに)
続いてkagesai.net
5箇所を自分のドメイン名に変更してください。
これでログイン画面のURLがオリジナルのものに変わりました。
この例だと「https://kagesai.net/wp-login.php?abcd1234」になります
phpの後に「?」を挟むので注意
設定を保存をクリックしたら、トップページと記事を確認、問題なければ次の作業に移ってください。
管理画面のログインURLを確認
シークレットモードで、過去のログインURLで検索をかけてみましょう。
- Macユーザー⌘command + shift + n
- WindowsユーザーCtrl + Shift + n
「https://自分のドメイン/wp-login.php」で検索をかけて、404エラーページが表示されればOKです。
最後にそのままシークレットモードで「新しいURLで検索」かけます。

WordPress管理者ログイン画面
ログイン画面が表示されれば設定完了です。
ここまで設定したら、あとは記事を書いていきましょう。
当講座の流れでここまで来た方は「「WordPressインストール後に必要な8つの初期設定を解説」の表示設定でチェックをつけた「検索エンジンでの表示」のチェックを外してください。
次回予告
次回は「子テーマの使い方」について、解説します。
子テーマを使えるようになると、カスタマイズ性がグーンとアップするので、ぜひ使いこなしましょう。


第5回目のWordPress講座はいかがでしたか?
今までの中では一番難しかったかもしれませんね。
慣れるまでは下手にいじらない方が良いファイルなので、最初だけ設定したらあとはほったらかしでOKです。
質問です。
管理画面へのアクセス制限の設定を試みたのですが、間違ったのか管理画面にログインできなくなりました。
元に戻す方法ありますでしょうか?
shokopanda様
mixhostの管理画面から「.htaccess」フォルダに入って、今回追記した部分を削除すれば元に戻りますよ。
参考:ファイルマネージャーで非表示ファイル(.htaccessなど)を表示する方法
またこうした事が起きないよう、記事中で別タブを開いておくようにと案内しているので次回からはご注意くださいませ〜。
詳しい方法が書いてあるサイトがなかったので、とても助かりました!
いちおう自分はわかったのですが、たぶんHTML全く知らない人は勘違いする人いると思いますよ。
【緑字部分はご自身の初期サブドメインに変更】の部分ですが、
kagesai.初期サブドメイン.mixh.jp
kagesai.kagesai.mixh.jp.mixh.j
たぶん↑こんな感じで入力しちゃう人多いと思います。あとkagesaiが赤字になっていないところもありますよー。
むむむ様
返信が遅くなりましたが、コメントありがとうございます。
初期サブドメインの件、注意書きを追加いたしました。
また赤字になっていない件、大変失礼いたしました。(現在・修正済みです)
今後ともカゲサイをよろしくお願いします。
カゲサイ