【WP上級者が解説】htaccessって何?用途やWordPress上の場所と推奨設定

wordpress htaccess WordPress

「htaccessって何?」
「WordPressのhtaccessってどこにあるの?」
あなたはそんな疑問をお持ちではないでしょうか?

例えば、ブログのURLを変更してリダイレクト処理をしなければいけないとき、「htaccessに設定する」という方法が出てきます。
でも、htaccessについて詳しくわからないという方も多いでしょう。

そんな方に読んで欲しいのが今回の記事です。
この記事では、WordPressのhtaccessがどんな役割をしているのか、どこにあるかなど、詳しく説明します。

また、htaccessでリダイレクト処理をする方法や推奨設定についてもご紹介しています。
htaccessを使うことで、サイトのセキュリティーも向上し、より安全にサイトを運営することができるようになるでしょう。

皆さんがhtaccessについて理解し、スムーズにサイト運営ができるように、この記事がお役に立てば幸いです。

htaccessとは?何ができるの?

「.htaccess」は、Webサーバ「Apache(アパッチ)」で使われる設定ファイルの1つ。
Webサーバの動きを制御する役割があります。

例えば、AというURLにアクセスが来たらBというURLに転送する、
ZというIPアドレスからサイトにアクセスがあったらアクセスを拒否する、などなど。

ユーザーからのアクセスに対して、どのような動きをするか決めることができる、とても重要なファイルなのです。

WordPressファイル内のhtaccessの場所

「.htaccess」は、WordPressのルートフォルダ(インストールした場所)にあります。
FTPソフトなどで、ルートフォルダを覗いてみてください。

でも、もしかしたら、「ルートフォルダを見たけど、.htaccessが見つからない」という人がいるかもしれません。
その理由と対処法について、これから説明します。

htaccessが見つからない場合

「.htaccess」は大切なファイルなので、「隠しファイル」になっています。

隠しファイルは、ユーザーから見えなくしているファイルのことで、今回の.htaccessのように、重要なファイルに対して設定されます。
上で説明したルートフォルダに「.htaccess」が見つからないという人は、.htaccessが隠しファイルになっていることが理由かもしれません。

通常は見えなくなっている隠しファイルですが、設定を変更すれば表示させることができます。

例えばFTPソフトの場合、メニューの中に、「隠しファイルを表示」や「不可視ファイルを表示」というような項目があるはずです。(FTPソフト毎に文言は異なります。)

その項目をONにすることで、隠しファイルが表示されるようになります。

htaccessが作られていない場合

隠しファイルを見える状態にしても.htaccessが出てこない場合は、.htaccessが作成されていないということです。

基本的にWordPressでは.htaccessが自動で生成されるのですが、何らかの原因で作られなかったということになります。

その一つの原因として考えられるのが、パーミッション(権限)設定です。
WordPressのルートディレクトリに書き込みができない状態になっていることが考えられますので、まずはそれを確認しましょう。

パーミッションの確認はFTPソフトなどで行います。
対象のフォルダを右クリックして出てくるメニューなどから、パーミッションの設定画面へアクセスできる場合が多いです。

パーミッション設定画面を開き、例えば下の画面のようになっていたら、そのフォルダに対して書き込みができない状態になっています。

書き込みができないと、当然ながらファイルを作ることができないので、.htaccessが生成されなかったと推測されます。

このままだと作成できないので、書き込み権限を与えましょう。

これで準備は完了です。

次に、.htaccessの作成です。
.htaccessは、管理画面からパーマリンク設定を行おうとするタイミングで生成されます。

管理画面 – 設定- パーマリンク設定をクリック。

このタイミングで、.htaccessファイルが生成されます。

htaccessの編集

次に、.htaccessを編集する方法についてご説明します。

作業前にバックアップを取る

作業に入る前に、必ずバックアップを取るようにしてください。

ここまで説明してきたとおり、.htaccessはとても大切なファイルです。
万が一、何か起こっても大丈夫なように、事前に.htaccessのバックアップを忘れないようにしましょう。

記述する場所

.htaccessに何か処理を追記する場合は、書く場所が重要になります。

記述場所は、# BEGIN WordPressより上のエリアです。

場所を間違えると、きちんと動作しない可能性があるので注意してくださいね。

記述例(リダイレクト処理)

今回は、.htaccessを編集する目的として一番多い「リダイレクト」を例に、記述例をご紹介します。
リダイレクト処理には様々なパターンがありますが、今回は、旧ドメインへのアクセスを全て新ドメインのトップページへ転送するというパターンの書き方をご紹介します。

この場合の記述方法は、下の通りです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* https://sample.com [R=301,L]
</IfModule>

●各行の意味
・1行目:<IfModule mod_rewrite.c>
mod_rewriteが使用可能かどうかの確認

・2行目:RewriteEngine On
mod_rewriteを使用する宣言

・3行目:RewriteRule .* https://sample.com [R=301,L]
実際にリダイレクトする処理。

旧ドメインへのアクセス(.*)を、新ドメインのトップページ(https://sample.com)へ転送する。
「https://sample.com」には、新ドメインのアドレスを記述してください。

R=301は、恒久的なリダイレクト(一次的でない)であるという設定。
Lは、この行のリライト処理が行われた場合、次の行には進まないという命令。

・4行目:</IfModule>
条件(<IfModule mod_rewrite.c>)の終了

htaccessの推奨設定

リダイレクト処理の書き方を説明しましたが、最後に.htaccessの推奨設定をご紹介します。
特に重要な設定を3つピックアップしました。

htaccessへのアクセス制限

まずは、.htaccessへのアクセス制限です。
.htaccessは重要なファイルなので、他の人に触らせるわけにはいきません。
そのため、自分以外の人のアクセスを拒否する設定を入れることを推奨します。

●記述方法

<files ~ “\.htaccess$”>
deny from all
</Files>

wp-config.phpへのアクセス制限

wp-config.phpにはデータベースへの接続情報など、重要な内容が書かれています。
.htaccess同様、他のユーザーに見られないようにアクセス拒否の設定を入れましょう。

●記述方法

<files wp-config.php>
deny from all
</Files>

管理画面へのアクセス制限

ユーザー名とパスワードでセキュリティを高めているとはいえ、ログインされない可能性がないとは言えません。
そのため、他のユーザーが管理画面へそもそもアクセスできないようにしておくことで、より強固にサイトを守ることができます。

●記述方法

<Files wp-login.php>
Order deny,allow
Deny from all
Allow from 111.111.111.111
</Files>

「111.111.111.111」のところには、ご自身のIPアドレスを入れます。
これを書かないと、自分自身もアクセスできなくなってしまうので注意してくださいね。

まとめ

今回は、WordPressのhtaccessについてお届けしました。
htaccessはWordPressのサイトを運営する上でとても重要なファイルです。

この記事を通してしっかりと理解してくださいね。

コメント