WordPressにおける.htaccess完全ガイド!置かれる場所、カスタマイズ基礎など徹底解説!
「.htaccessって何をすればいいの?」
「自分のサーバーにファイルが見当たらないけど、どう探せばいいの?」
「リダイレクトやセキュリティ設定が難しそうで不安……」
「ちょっとした記述ミスでサイトが真っ白になるって聞いたけど、本当?」
そんな悩みを抱えるあなたへ──
本記事では、WordPressサイトの運用で必須ともいえる .htaccess の基礎から応用までを、初心者にもわかりやすく解説します。
- ファイルの設置場所 がわからない
- パーマリンク を設定しても反映されない
- SSL化 や wwwの統一 の書き方が知りたい
- セキュリティ強化 のための設定をまとめて学びたい
これらの疑問をすべて解消し、安心して .htaccess を編集できるようサポートします!

WordPressにおける.htaccessの全体像
.htaccessファイルの役割とは
WordPressサイトの挙動を細かく制御するための設定ファイルです。
主に以下の用途で使われます。
- URLの書き換え(リライトルール)
- パーマリンクの実現
- リダイレクト設定
- アクセス制御
- 特定IPの遮断
- 管理画面への制限
- セキュリティ向上
- ディレクトリの一覧表示停止
- 危険ファイルへのアクセス防止
💡 ポイント
編集ミスでサイトが真っ白になることがあるので、必ずバックアップを取ってから作業しましょう。
.htaccessが置かれる場所
WordPressルートディレクトリ内
通常、WordPress本体と同じ階層(wp-config.phpと同じフォルダ)に配置されます。
| サーバー環境 | 例 |
|---|---|
| 共有サーバー | /home/ユーザー名/public_html/.htaccess |
| VPS/専用サーバー | /var/www/html/.htaccess |
FTPソフトやホスティング管理画面でこのフォルダを確認してください。
ファイルが見当たらないときのチェックポイント
隠しファイルの表示設定
先頭に「.」が付くファイルは非表示設定になりがちです。
- FTPクライアント:隠しファイル表示をオン
- サーバー管理画面:ドットファイル表示を有効化
パーマリンク変更による自動生成
WordPressのダッシュボードでパーマリンク設定を保存すると、自動で.htaccessが作成・更新されます。
- 書き込み権限がない場合は手動作成が必要
- 手動作成の際は次章の初期例をコピー&ペースト
初期状態の記述例
「# BEGIN WordPress ~ # END WordPress」の構成
デフォルトで用意されるリライトルールです。WordPressが内部的にページ振り分けを行う仕組みを担います。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
| 行番号 | 説明 |
|---|---|
| 1 | WordPress管理領域の開始マーカー |
| 2–3 | mod_rewriteモジュールが有効かチェックし、書き換えエンジンONに |
| 4 | ベースディレクトリを指定 |
| 5 | index.phpへのアクセスはそのまま維持 |
| 6–7 | 実ファイル/ディレクトリが存在しない場合にのみ次のルールを適用 |
| 8 | 全てのリクエストをindex.phpへリダイレクト |
| 9 | 終了マーカー |
🚀 Tip
手動で追加した後は、サーバーキャッシュやブラウザキャッシュをクリアして動作を確認しましょう。
.htaccessカスタマイズ基礎
URLのリダイレクトと正規化
HTTPS化の強制
ウェブサイトを常時SSL化することで、通信の盗聴や改ざんを防ぎます。
- 効果:URLが
http://→https://に自動転送 - メリット:SEO評価向上/ユーザーの信頼獲得 🔒
HTTPSへ誘導する記述例
# HTTP → HTTPS リダイレクト
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
wwwあり・なしの統一
ドメインの表記ゆれをなくし、SEO上の重複コンテンツを防止します。
- wwwあり に統一する場合と、非www に統一する場合があります。
| 統一先 | 主な使い方 |
|---|---|
| www版 | 親しみやすい印象を与えたい場合 😊 |
| 非www版 | シンプルでモダンな印象を重視する場合 ✨ |
# 非www → www へ統一
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
ページ移転時の転送設定
旧URLから新URLへ訪問者を自動的に送り、リンク切れを防ぎます。
- 301リダイレクト:恒久的な移転を示し、検索エンジンにも伝わる
# 特定ページの301リダイレクト
Redirect 301 /old-page.html https://example.com/new-page/
アクセス制御の導入
特定IPの遮断
不要なアクセス元をブロックして、サーバー負荷や不正アクセスを軽減します。
# 例:192.0.2.123 をブロック
<RequireAll>
Require all granted
Require not ip 192.0.2.123
</RequireAll>
ベーシック認証の適用
ログイン画面や管理領域など、限られた人のみアクセスさせたい場所に認証を追加できます。
- .htpasswd ファイルでユーザー管理
- メリット:ブルートフォース攻撃の防止
管理画面ディレクトリへの認証追加
# /wp-admin/ にベーシック認証をかける例
<Directory "/var/www/html/wp-admin">
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
</Directory>
ディレクトリリスト表示の停止
ディレクトリ内のファイル一覧を隠し、不正なファイルアクセスを防ぎます。
# ディレクトリ一覧の無効化
Options -Indexes
.htaccess自体のアクセス保護
設定ファイルへの直接アクセスを禁止し、内容漏えいを防ぎます。
# .htaccessを外部から見えなくする
<Files ".htaccess">
Require all denied
</Files>
😊 まとめ
この章では、URL正規化 や アクセス制御 の基本設定を紹介しました。
適切に設定することで、セキュリティ強化・SEO対策・ユーザー体験の向上につながります。
セキュリティ強化向け設定
管理画面(wp-admin)へのアクセス制限
管理画面ディレクトリへの不正アクセスを防ぐため、特定のIPアドレスのみ許可する方法です。
# wp-admin へのアクセスを許可するIPだけに制限
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-admin
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$ # 自分のIPアドレスを入力
RewriteRule ^.*$ - [R=403,L]
</IfModule>
- RewriteCond %{REMOTE_ADDR}:アクセス元IPをチェック
- R=403:許可されない場合は403(禁止)を返す
- 注意点:
- 固定IPでない場合、VPNやダイナミックDNSでIPを固定する
- 複数IPを許可したいときは、
|(パイプ)で区切って正規表現を拡張可能😊
ログインページ(wp-login.php)への制限
ログイン試行を狙った攻撃を減らすため、wp-login.phpへのアクセスをIPまたは認証で守ります。
# wp-login.php へのベーシック認証
<Files "wp-login.php">
AuthType Basic
AuthName "Restricted Login"
AuthUserFile /path/to/.htpasswd
Require valid-user
</Files>
- AuthUserFile:ユーザー一覧を記載したファイルへのパス
- Require valid-user:.htpasswdに登録された全ユーザーを許可
- メリット:パスワードを2重化でき、ブルートフォース攻撃を大幅に軽減🔐
脆弱性の高いファイルへのアクセス封鎖
不要な公開ファイルを防ぐことで、情報漏えいや攻撃チャンスを減らします。
| ファイル名 | 概要 |
|---|---|
xmlrpc.php | リモート投稿やPingback機能を提供 |
readme.html | WordPressのバージョン情報を含む |
license.txt | ソフトウェアライセンス情報 |
# 不要ファイルへのアクセス禁止
<FilesMatch "^(xmlrpc\.php|readme\.html|license\.txt)$">
Require all denied
</FilesMatch>
- FilesMatch:複数ファイルを一度にマッチ
- Require all denied:全アクセスをブロック
- Tip:必要に応じて他のファイル(例:wp-config-sample.php)も追加しましょう📋
😊 まとめ
これらの設定を組み合わせることで、管理画面・ログイン・不要ファイルの三方面から強固に防御できます。実装後は必ず動作確認を行い、安全な運用を心がけましょう!
編集時の留意点
変更前のバックアップと動作確認
.htaccessを編集する際は、誤った記述がサイト全体の表示不良やエラーの原因になります。
以下の手順で安全に作業を進めましょう。
- バックアップを取得
- FTPクライアント で
.htaccessをダウンロード - サーバー側でコピーを作成(例:
.htaccess.bak)
- FTPクライアント で
- テスト環境で確認
- 本番サイトに反映する前に、ローカルやステージング環境で動作確認
- ブラウザのキャッシュやサーバーキャッシュをクリアして、最新の挙動をチェック
- 段階的に反映
| ステップ | 内容 |
|---|---|
| 小さな変更を1つずつ | 例えばリダイレクト1件ずつ追加し、その都度動作確認 |
| 問題が起きたら即ロールバック | .htaccess.bak を元に戻し、正常状態に戻す |
| 最終確認 | サイトの主要ページをすべてチェックし、404エラーやループがないかを確認 |
🔄 ポイント
何か問題が発生したら、すぐにバックアップファイルに差し替えて元の状態に戻しましょう。
Apache環境であることの確認
.htaccessはApacheサーバー専用の設定ファイルです。他のウェブサーバー(nginxなど)では動作しないため、まずは環境をチェックしましょう。
- サーバー情報の確認方法
- サーバー管理画面(cPanel/Pleskなど)で「Apache」という表記を探す
- SSH接続ができる場合は、以下コマンドを実行
apachectl -v* Apacheのバージョン情報が表示されればOK - mod_rewriteモジュールの有効化確認
- リライトルールを使うには
mod_rewriteが必須 - SSHで以下を実行
apachectl -M | grep rewrite* `rewrite_module (shared)` が出力されれば有効 - リライトルールを使うには
⚙️ 注意
もしApache以外のサーバーを利用している場合は、同等の設定をnginxのnginx.confに記述する必要があります。

以上の留意点を守って作業すれば、安心して.htaccessのカスタマイズが行えます。エラーが出た場合も、落ち着いてバックアップから復元し、設定を見直しましょう。
まとめ
本ガイドでは、以下のポイントを押さえました:
- .htaccessの基礎
- 役割と設置場所の確認方法
- カスタマイズの基本
- HTTPS化・www統一・リダイレクト
- IP制限・ベーシック認証・ディレクトリ保護
- セキュリティ強化
- 管理画面・ログインページ制限
- 不要ファイルへのアクセス封鎖
- 編集時の注意点
- バックアップ取得とステージングでの動作確認
- Apache環境とモジュールの有効化チェック
これらの設定を段階的に導入すれば、SEO強化・ユーザー体験の向上・サイトの安全性が格段にアップします。
ぜひ、この記事を参考にして .htaccess の運用を自信を持って進めてください。
もし不明点があれば、再度見直しながら一つずつトライしてみましょう!🚀
