Copicode 日本語トップ

.htaccessの書き方リダイレクト・SSL・404を安全に確認する

.htaccess は、レンタルサーバーでリダイレクト、HTTPS統一、404ページ、アクセス制限などを調整するための設定ファイルです。便利ですが、1行のミスでサイト全体が 500 Internal Server Error になることがあります。

このページでは、ロリポップなどのApache系サーバーで .htaccess を編集する前に、置き場所、バックアップ、変更内容、AIに貼る情報、公開後の確認、壊れた時の戻し方を順番に整理します。

確認日と作成方針

確認日: 2026年6月12日

このページは、Copicodeの実サイト運用、ローカル確認、公開URL確認、Apache HTTP Serverとロリポップの公式情報をもとに、初心者が安全に切り分けられる順番へ整理しています。構成整理やチェックリスト作成にはAIを補助的に使うことがありますが、公開前に内容、危険操作、秘密情報、内部リンク、対象範囲を人の目で確認しています。

.htaccessを触る前の確認順

.htaccessを編集する前に目的、置き場所、バックアップ、1変更だけ反映、公開後確認、戻し方を順番に確認する図解

このページで整理できること

最初に目的を1つに絞る

.htaccess は複数の設定を書けますが、最初から全部を同時に直そうとすると、どの1行で壊れたか分からなくなります。まず今回の目的を1つに絞ります。

やりたいこと最初に確認することいきなりやらないこと
httpからhttpsへ移したいサーバー側のSSL設定が有効かSSL未設定のまま強制転送を書く
古いURLを新しいURLへ飛ばしたい古いURLと新しいURLがどちらも正しいか大量の301を一度に追加する
404ページを出したい指定先の404ページが実在するか存在しないファイルをErrorDocumentに指定する
特定フォルダを見せたくない対象フォルダだけに置けるかサイト直下に Require all denied を置く
AIが出した設定を試したいどの症状を直す設定か説明できるか全文を置き換える

置き場所を確認する

.htaccess は、置いたフォルダとその下のフォルダへ影響します。サイト全体に効かせるなら、トップページの index.phpassets/ が見える公開フォルダ直下を確認します。

公開フォルダの例:
index.php
assets/
templates/
.htaccess

サブフォルダだけに効かせたい設定は、そのサブフォルダ内へ置きます。意図しない上位フォルダへ置くと、サイト全体に影響が出ます。

編集前に必ずバックアップを取る

FTP/SFTPでサーバー上の今動いている .htaccess をダウンロードし、日付付きの名前で保存します。手元の古いファイルではなく、本番で今使われているファイルを保存するのが重要です。

.htaccess.backup-20260612

アップロード後に500エラーになったら、まず直前に上げた .htaccess を別名へ退避し、バックアップを .htaccess に戻します。PHPやCSSを先に疑うより、直前に触った設定から戻します。

よく使う設定例

以下は考え方を整理するための基本例です。サーバー仕様や既存の .htaccess によっては、そのまま貼らず調整が必要です。

httpsへ統一する

SSL設定がサーバー側で有効になっている前提で、httpアクセスをhttpsへ転送する基本形です。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

ロリポップ側で独自SSLが未設定のまま書くと、警告や表示不能につながることがあります。先にSSL設定と実際のhttps表示を確認します。

wwwあり・なしを統一する

URLの重複を減らすため、www ありかなしのどちらかに統一します。例ではなしに統一しています。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

example.com は自分のドメインに置き換えます。https転送と組み合わせる時は、転送先が同じ正規URLへ向かうようにします。

古いURLを新しいURLへ移す

記事を統合したり、ファイル名を変えたりした時は、古いURLから新しいURLへ301リダイレクトします。

Redirect 301 /old-page.php /new-page.php

古いURLの左側はスラッシュから始めます。複雑な条件がない単純な移転なら、まず Redirect 301 で整理します。

自作の404ページを表示する

存在しないURLへアクセスされた時、サーバー標準の画面ではなく自分の404ページを表示できます。

ErrorDocument 404 /404.php

/404.php が実際に存在している必要があります。404ページ自体が404になっていないか、公開後に直接開いて確認します。

テストフォルダを見せない

作業中のファイルやバックアップを公開フォルダへ置いた場合、外から見えてしまうことがあります。公開したくないフォルダだけにアクセス制限を置きます。

Require all denied

この1行を書いた .htaccess を、見せたくないフォルダの中に置きます。サイト全体のルートに置くと全ページが見えなくなるため、置き場所を必ず確認します。

AIやCodexが出した.htaccessを貼る前に見ること

AIの回答は便利ですが、既存の .htaccess、サーバー仕様、SSL状態、公開フォルダを知らないまま生成されることがあります。全文置き換えではなく、追加する目的と行だけを確認します。

確認すること見る理由危ないサイン
既存の RewriteEngine On同じブロックを何度も増やさないため既存設定を丸ごと消している
転送先URL別ドメインやhttpへ飛ばないか見るため知らないURL、http、サブドメインへ飛ぶ
対象フォルダ設定がサイト全体に効くか一部だけか分けるためルートに置く前提の危険な拒否設定
既存のWordPressやCMS設定自動生成ブロックを壊さないためCMSブロックを削除している
秘密情報ログイン情報やサーバー内部情報を守るため認証情報、内部パス、IP制限全文をそのまま貼る

公開後に確認するURL

よくある失敗と戻し方

症状原因の例最初に戻す場所
500エラーになる記述ミス、許可されていないディレクティブ直前に上げた .htaccess を退避し、バックアップへ戻す
リダイレクトが止まらないhttp/https、wwwありなし、古いURLの転送が循環している追加した転送ブロックを一度外す
CSSや画像が読めない転送でパスが変わった、403/404になった画像やCSSの直接URLを開いて状態コードを見る
httpsへ飛ばないSSL未設定、条件式の順番、キャッシュロリポップのSSL設定と公開URLを確認する
FTP/SFTPで.htaccessが見えないドットで始まる隠しファイルが非表示WinSCPやFileZillaの隠しファイル表示を確認する

AIやサポートへ相談する時のメモ

自分で原因を説明しにくい時は、次の形で整理します。.htaccess 全文、FTP情報、管理画面ログイン情報、秘密のパスワードは貼らないでください。

ロリポップ上の自作サイトで .htaccess を編集しようとしています。

目的:
例: httpからhttpsへ統一 / 古いURLを新URLへ301 / 404ページを指定 / 特定フォルダを見せない

今の症状:
例: 500エラー / リダイレクトループ / CSSや画像が読めない / 何も変わらない

確認済み:
- 編集前の .htaccess バックアップ:
- .htaccess の置き場所:
- SSL設定の有効化:
- 追加したい行:
- 公開後に確認したURL:

伏せた情報:
FTP情報、ログイン情報、サーバー内部パス、個人情報、認証情報は貼っていません。

見てほしいこと:
1. この変更は目的に合っていますか。
2. 500エラーやリダイレクトループになりそうな箇所はありますか。
3. 既存の設定を消さずに追加するなら、どこへ入れるべきですか。

公式情報で確認すること

.htaccess はサーバー仕様の影響を受けます。AIの回答だけで判断せず、使っているサーバーとApache側の説明も確認します。

確認先見ることリンク
ロリポップ公式 .htaccess の利用方法と関連マニュアル ロリポップ公式 .htaccess利用方法
Apache公式 .htaccess の適用範囲、AllowOverride、トラブル時の考え方 Apache .htaccess files
Apache公式 Redirect と301/302/410などの使い分け Apache Redirect directive
Apache公式 RewriteRuleRewriteCond を使う時の基本 Apache mod_rewrite

次に読むと作業がつながる記事