WordPressの.htaccess編集は3つだけでOK

サーバーをいろいろ制御できるファイルです。
今回設定するのは、以下の3つ
- https://リダイレクト設定
- URLの正規化
- WordPress管理画面のログインURLを変更
WordPressのおすすめ.htaccess編集3選
https://リダイレクト設定
リダイレクト設定とは、SSL化されていないURLからでもSSL化されたURLに飛ばすことを指します。
http://〜|SSL化されていない
https://〜|SSL化されている
インターネット通信を暗号化する技術。
暗号化することで、個人情報の漏洩リスクを下げれる。
例えば、ユーザーにサイトのURLをシェアされたり、被リンクを貼ってもらった場合、間違えてhttp://のURLが使われてしまうかもしれません。
その場合でも、常にSSL化されたサイトを表示できるようにします。
試しに当サイト「http://kagesai.net」にアクセスしてみてください。
https://〜で表示されるはずです。
URLの正規化
例えば、mixhost
の場合デフォルトだとURLは以下のように分かれています。
URLが分かれた状態とは、ドメインパワーが分散されるイメージです。
そこで、どのURLからアクセスしても「https://ドメイン」になるように統一します。
プライマリドメインの確認方法

cPanelにログイン後、右側に表示されています。
WordPress管理画面へのログインURLを変更

WordPressのログインURLはデフォルトだと
“https://ドメイン/wp-login.php“になっています。
もちろんユーザー名やパスワードがわからなければ、ログインされることはありません。
ただURLを任意のものに変更しておけば、そもそもログイン画面に入られることもなくなります。
セキュリティ対策として、やっておきましょう。
それでは、ここまで解説した3つを編集していきます。
当サイト契約のレンタルサーバーmixhost
を前提に解説していますが、やり方は他のサーバーでも同じです。
.htaccessの編集方法
cPanelにログイン

ファイルマネージャーを開く
隠しファイルを表示させる

①設定をクリック
②隠しファイルを表示にチェック
③Saveをクリック
既存の.htaccessファイルをダウンロードする

①public_htmlフォルダを展開
②ドメインフォルダをクリック
③.htaccessファイルをクリック
④ダウンロードをクリック
.htaccessファイルを編集

⑤.htaccessファイルの上で右クリック
⑥Editをクリック

⑦Editをクリック

# BEGIN LSCACHEの上に以下のコードをコピペしてください。
<!-- SSLリダイレクト設定 -->
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
<!-- URLの正規化 -->
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.kagesai\.net$
RewriteRule ^(.*)$ https://kagesai.net/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://kagesai.net/$1 [R=301,L]
<!-- プライマリドメインから独自ドメインへ -->
RewriteCond %{HTTP_HOST} ^kagesai\.プライマリドメイン\.〇〇\.〇〇$ [NC]
RewriteRule (.*) https://kagesai.net/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.kagesai\.プライマリドメイン\.〇〇\.〇〇$ [NC]
RewriteRule (.*) https://kagesai.net/$1 [R=301,L]
<!-- ここまで -->
<!-- ログインURL変更 -->
<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>
赤字:自分のドメインに変更(最大12箇所)
青字:レンタルサーバーでドメインを取得した方は不要
オレンジ:自分のプライマリドメインを入力(2箇所)
〇〇の中は、例えばamazon.co.jpであれば、coとjp部分です。
amazon.jpなど2つの場合もありますので、必ず確認してください。
緑字:任意のログインパスワードへ変更(6箇所)
管理画面のログインURLを確認

シークレットモードでデフォルトのhttps://自分のドメイン/wp-login.phpで検索をかけてみましょう。
404エラーページが表示されればOKです。

続いて、設定したログインURLで検索をかけます。

WordPressのログイン画面が表示されれば完了です。
結論:WordPressの.htaccess編集は3つだけやっておこう
以上、WordPressの.htaccess編集を解説しました。
URLの正規化はそこまで重要ではないですが、ログインURLはプラグインを使わなくても簡単に変更できますので、ぜひやってみてください。


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