# KapsuleHostでの.htaccessについて理解する

Source: https://support.kapsulehost.com/ja-jp/wordpress-htaccess

KapsuleHostは、すべてのウェブサイトを`.htaccess`を読み込まない高性能なウェブサーバーで提供しています。そのため、このファイルに追加したルールはまったく効果を持ちません。このガイドでは、それがWordPressサイトにとってどのような意味を持つのか、そして代わりに同じ役割を果たすKPanelの設定を説明します。

共有cPanelホストから移行してきた場合、`.htaccess`はおそらくリダイレクト、HTTPS強制、カスタムエラーページ、ボットのブロックなどを設定していた場所でしょう。これらはすべてKapsuleHostでも引き続き利用できます。ただ、テキストファイルではなくKPanelで設定するようになっており、サーバーレベルで適用されるため、より高速で、入力ミスによってサイトが壊れることもありません。

## .htaccessがここで機能しない理由

`.htaccess`は、Apacheウェブサーバー用のディレクトリごとの設定ファイルです。Apacheはリクエストのたびにこのファイルを読み直すため、便利である一方で動作が遅くなる原因にもなっています。

KapsuleHostはApacheを実行していません。お客様のサイトは、起動時に一度だけ設定を読み込むイベント駆動型のウェブサーバーによって提供されており、これが負荷時にもサイトの応答が速い大きな理由のひとつです。このサーバーにはディレクトリごとの上書きファイルに相当する仕組みがないため、`.htaccess`を開くことは決してありません。

> **Warning:** KapsuleHostのサイトで`.htaccess`にルールを追加しても、何も起こらず静かに失敗します。エラーも警告も出ず、ファイルはそのまま残ります。ルールは実行されないだけです。「.htaccessにこれを追加してください」と書かれたWordPressのチュートリアルに従っている場合は、代わりに下記の表からKPanelでの対応箇所を見つけてください。

良いニュースは、よくある`.htaccess`の悲劇とは逆のことが起きる点です。このファイルの構文エラーが原因でサイトが落ちることはありません。なぜなら、誰もこのファイルを解析しないからです。

## これがなくても機能するもの

**パーマリンク。** WordPressサイトでApache上の`.htaccess`が最も必要とされる理由は、パーマリンクを美しく表示するためです。KapsuleHostでは、書き換え処理がサイトのサーバー設定に組み込まれているため、`/2026/07/my-post/`は`.htaccess`ブロックがまったくなくてもWordPressを通して解決されます。パーマリンクが404を返す場合は、別の原因が考えられます。[WordPressのパーマリンクの問題を修正する](https://support.kapsulehost.com/ja-jp/wordpress-permalink-issues)をご覧ください。

**WordPressがファイルに書き込む。** WordPressや一部のプラグインは、Apacheを前提としているため、今でも`.htaccess`に`# BEGIN`/`# END`ブロックを書き込みます。これは無害です。ファイル自体は実在し、書き込み可能で、ファイルマネージャーにも表示されます。ただ、それを読み込む仕組みが存在しないだけです。

**「強化を適用しました」と表示するセキュリティプラグイン。** `.htaccess`を編集することで`xmlrpc.php`や`wp-config.php`をロックダウンしたと主張するプラグインは、実際にはこのプラットフォーム上で何も保護していません。サイト自体の**セキュリティ**タブを使用してください。これはサーバー側で同等のルールを適用します。

## 一般的な.htaccessルールに対応するKPanelの設定

これらはすべてサイト自体の中にあります。**ウェブサイト**、次にサイトを選び、該当のタブを開きます。

| .htaccessに書いていた内容 | KPanelでの対応場所 |
|---|---|
| HTTPSを強制するための`RewriteCond %{HTTPS} off` | **設定**、その下の Behavior にある**HTTPS を強制** |
| `Redirect 301 /old /new` | **設定**、次に**リダイレクト** |
| `ErrorDocument 404 /404.html` | **設定**、次に**エラーページ** |
| フォルダをパスワード保護するための`AuthType Basic` | **設定**、次に**パスワード保護** |
| アドレスをブロックするための`Require not ip 203.0.113.4` | **WordPress**、次に**セキュリティ** |
| クローラーをブロックするための`RewriteCond %{HTTP_USER_AGENT} (BadBot)` | **パフォーマンス**、次に**クローラー** |
| `DirectoryIndex index.php index.html` | **設定**、その下の Serving にある**ディレクトリインデックス** |
| 圧縮とキャッシュのための`mod_deflate` / `mod_expires` | すでに有効です。圧縮とキャッシュのヘッダーはサーバー側で設定されています |

このうち2つは、`.htaccess`版では決して実現できなかったことまでできます。リダイレクトは完全一致パス、末尾スラッシュのプレフィックス、そして`/blog/*`のようなワイルドカードに対応しており、KPanelは保存後にリダイレクトを実際に検証します。エラーページは本来のステータスコードのまま提供されるため、カスタム404ページは検索エンジンから見ても本物の404であり、お詫びの文言が書かれた200ではありません。

![KPanel内のあるサイトのRedirectsページ。ここでリダイレクトがウェブサーバーによって適用される](https://support.kapsulehost.com/help/screenshots/wordpress-htaccess.1030a8b1.webp)

## ファイルを見つけて読む

プラグインがファイルに何を書き込んだかを確認したり、KPanelでルールを再作成する前にコピーしておきたい場合など、`.htaccess`を見たい場合もあるでしょう。

### WordPressタブから

1. [KPanel](https://kpanel.kapsulehost.com)にサインインし、左サイドバーの**ウェブサイト**をクリックします。
2. 対象のサイトをクリックします。
3. **WordPress**タブを開き、**wp-config**セクションを開きます。
4. `.htaccess`パネルまでスクロールします。内容は読み取り専用で表示され、変更が必要な場合は**Edit**ボタンがあります。

### ファイルマネージャーから

1. サイトを開き、**設定**、次に**ファイルマネージャー**を開きます。
2. ツールバーの**隠しファイルを表示**をクリックします。ドットで始まるファイルは既定では非表示のため、これを行わないと`.htaccess`は表示されません。
3. `.htaccess`をクリックして、内蔵エディターで開きます。

このファイルはサイトのルートにあり、`wp-config.php`や`wp-content`と同じ場所にあります。エディターとその権限管理についての詳細は、[ファイルマネージャーの使い方](https://support.kapsulehost.com/ja-jp/file-manager)をご覧ください。

> **Tip:** たとえ読み込まれていないファイルであっても、サイトのルートで何かを編集する前にはバックアップを取ってください。手間はかからず、ワンクリックで元に戻せます。[バックアップの取得](https://support.kapsulehost.com/ja-jp/taking-a-backup)をご覧ください。

## WordPressの既定ブロック

参考までに、これはWordPressが自身のために書き込むブロックです。Apacheホストではパーマリンクを動かしますが、KapsuleHostでは機能しておらず、削除しても何も壊れません。

```apache
# 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
```

後でApacheホストに移行する可能性がある場合は、そのまま残しておいてください。パーマリンク設定を保存するたびに、WordPressはどのみちこれを書き直します。

## ルールを移行する場合

cPanelからサイトを移行する際は、旧ホスティングを解約する前に古い`.htaccess`を開き、一行ずつ確認してください。

1. **リダイレクト。** 各`Redirect`や`RewriteRule`を、**設定**、次に**リダイレクト**で再作成します。ルールごとに1行です。恒久的な移転であれば301を、変更が元に戻る可能性があれば302を選びます。
2. **HTTPS強制。** 削除してください。代わりにサイトの**設定**で**HTTPS を強制**を有効にします。
3. **IPブロック。** **WordPress**、次に**セキュリティ**のIPブロックパネルで再作成します。
4. **キャッシュと圧縮のヘッダー。** 削除してください。これらは自動的に処理されており、旧ホストから残った古い`mod_expires`ルールは、キャッシュの挙動が分かりにくくなる原因としてよくあるものです。
5. **プラグインが書き込んだもの。** 無視してください。新しいサイトにプラグインを再インストールし、プラグイン自身に処理させましょう。

移行の際にはファイル自体はそのまま保持されるため、リストを確認している間も何も失われません。移行の全体的な手順については、[cPanelからのウェブサイト移行](https://support.kapsulehost.com/ja-jp/sites-migrate-cpanel)をご覧ください。

## トラブルシューティング

**「.htaccessにリダイレクトを追加したのに何も起こりません。」** それが正常です。**設定**、次に**リダイレクト**で追加してください。そこにあるStatus列で、リダイレクトが実際に検証されたかどうかが分かります。

**「プラグインはサイトが強化されたと言っていますが、スキャナーは違うと言っています。」** そのプラグインは、読み込まれない`.htaccess`ルールを書き込んでいます。実際に適用されている保護機能については、サイトの**セキュリティ**タブを確認してください。

**「以前のホストの.htaccessに理解できないルールがありました。」** そのまま丸ごとコピーしないでください。ファイルを添付してチケットを開いていただければ、どれがKapsuleHostで同等の機能を持つか、どれが共有Apacheホストの欠点を補うためだけに存在していたのかをお伝えします。

**「パーマリンクが壊れています。」** これはここでは`.htaccess`の問題ではありません。[WordPressのパーマリンクの問題を修正する](https://support.kapsulehost.com/ja-jp/wordpress-permalink-issues)を参照するか、サイトの**WordPress**タブから**クイックアクション**、次に**リライトをフラッシュ**でリライトルールをフラッシュしてください。
