.htaccess を使用したルールとリダイレクトの設定

ディレクトリレベルの設定ファイルである.htaccessファイルは、Apacheウェブサーバーでサポートされています。これにより、グローバルなサーバー設定に影響を与えることなく、特定のアカウントに対してウェブサーバーの設定(機能の有効化や無効化など)を変更できます。

このファイルは、設置されたディレクトリ全体およびその中のすべてのファイルやサブディレクトリに設定を適用します。.htaccessファイルで行った変更は即座に反映され、サーバーの再起動は不要です。

.htaccessファイルの場所の確認方法

.htaccessファイルを見つけるには:.htaccessファイル:

1. Spaceshipアカウントにログインし、Hosting Manager(Launchpad内)を選択し、管理(ホスティングプランの横)をクリックし、ファイルとストレージを選択し、ファイル管理(ウェブサイト名の近く)を選択します。

2. ドメインのルートフォルダにリダイレクトされます。

3. ドメインの.htaccessファイルを編集する必要がある場合は、ドメインのルートフォルダで.htaccessファイルを見つけて右クリックし、編集オプションを選択します:


注意:隠しファイル(ドットファイル)を表示」が設定メニューで有効になっていることを確認してください:


4. ファイルマネージャーに.htaccessファイルがない場合は、+ ファイルボタンで新規作成できます:


5. 独自の設定ルールを追加して保存する準備ができました。
   

よく使われる .htaccess ルール一覧

ブロック

この方法では、IPアドレスやドメインに基づいてユーザーをブロックできます。不要な訪問者のアクセス制限や、管理エリアなど特定のウェブサイトセクションへのアクセスを所有者のみに制限する場合に特に有効です。

特定のブロックルールを実装するには、次の内容で.htaccessファイルを作成してください:

(他のすべてのユーザーのアクセスを許可し、X.X.X.XのIPアドレスを持つユーザーをブロックする場合)

<RequireAll>

Require all granted

Require not ip X.X.X.X

</RequireAll>

(特定のX.X.X.XおよびY.Y.Y.YのIP以外のすべての訪問者をブロックする場合)

<RequireAll>

Require all denied

Require ip X.X.X.X

Require ip Y.Y.Y.Y

</RequireAll>

注意:新しいRequireディレクティブと一緒に、非推奨のAllowDeny、およびOrderディレクティブは使用しないでください

Mod_Rewrite(リダイレクトルール)

Mod_Rewriteは、ウェブページやURLが訪問者にどのように表示されるかを定義します。

デフォルトでは、Mod_RewriteはURLを対応するファイルシステムパスにマッピングしますが、別のURLへのリダイレクトも可能です。

リダイレクトを設定する前に、ニーズに最適なリダイレクトの種類を選択することが重要です:

  • 恒久的リダイレクト(301):このリダイレクトは301ステータスコードを送信し、ページが恒久的に移動したことを示します。ブラウザにキャッシュされ、検索エンジンやユーザーエージェントにデータベース内のURLを更新するよう通知します。最も一般的なリダイレクトの種類です。

  • 一時的リダイレクト(302):このリダイレクトは302ステータスコードを送信し、移動が一時的であることを示します。ブラウザはこのリダイレクトをキャッシュせず、訪問者や検索エンジンをリダイレクトしますが、元のページは引き続きインデックスされます。将来的にURLが変更されないことが確実でない限り、このタイプのリダイレクトが推奨されます。

以下は、.htaccessファイルで設定できる、最も一般的かつ便利なリダイレクトの一部です:

恒久的リダイレクト元: example1.com example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com/$1" [R=301,L]

一時的リダイレクト元: exampledomain1.com exampledomain2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com\/" [R=302,L]

注意:以下は恒久的リダイレクトの例です。一時的リダイレクトは、コード末尾の[R=301,L]を[R=302,L]に置き換えることで定義できます(必要に応じて)。

リダイレクト元: example1.com/subfolder example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^subfolder/$ "http\:\/\/example2\.com\/" [R=301,L]

HTTPからHTTPSへのリダイレクト(例:example.com)

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule .* https://example.com%{REQUEST_URI} [R,L]

または

RewriteCond %{SERVER_PORT} 80

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example\.com$

RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

非WWWからWWWへのリダイレクト

  • 任意のドメインに対して .htaccess が有効になります:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

  • 指定したドメインに対して:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

WWWから非WWWへのリダイレクト

  • 任意のドメインに対して .htaccess が有効になります:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

  • 指定したドメインに対して:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]

RewriteRule (.*) http://example.com/$1 [R=301,L]

example.comのすべてのページを対応するdomain.comのページにリダイレクト

RedirectMatch 301 ^/(.*)$ http://domain.com/$1

注意:すべてのページ名が両方のドメインで一致している必要があります。一致しない場合、リダイレクトは「ページが見つかりません」メッセージになります。

1ページを新しいURLにリダイレクト

Redirect 301 /old_page.html http://www.domain.com/new_page.html

注意:この手法は、削除されたページを404エラーにリダイレクトしたり、コンテンツ参照を更新した後のSEO調整に役立ちます。

認証/認可

このタイプのルールは、ディレクトリやサブディレクトリに対するセキュリティ制限を定義します。ディレクトリにパスワード保護を設定することで、アクセスしようとする訪問者にユーザー名とパスワードの入力を求めることができます。

この保護を設定するには:

1. 保護したいディレクトリを/home/cpanel_user/.htpasswds/フォルダ内に作成します(例:domain.com/testの場合、パスは.htpasswds/domain.com/test/です)。

2. このディレクトリ内にpasswdファイルを作成し、オンラインジェネレーターを使ってハッシュ化した認証情報を追加します。

3. 次のディレクティブを.htaccessファイルに追加します:

AuthType Basic

AuthName "Directory Name"

AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"

require valid-user

カスタムエラーページ

この機能を使うと、ウェブサイト用のカスタマイズされたエラーページを作成できます。URLが壊れている場合などに、ウェブサイトのテーマに合わせたエラーメッセージを訪問者に表示できるため便利です。これにより、デフォルトの「404 File Not Found」エラーの代わりに、ユーザーがウェブサイトのコンテンツに戻れるよう案内するカスタムデザインのエラーページを返し、混乱を防ぎます。

カスタムエラーページを設定するには、次のテキストを.htaccessファイルに追加します:

ErrorDocument 404 /404.html

この行は、404(ファイルが見つからない)エラーが発生した際に、Apacheウェブサーバーがドメインのルートディレクトリにある404.htmlファイルを読み込むよう指示します。

注意:他のエラー(403や500など)用のカスタムエラーページを作成するには、404を該当するエラーコードに、/404.htmlをカスタムエラーファイルのパスに置き換えてください。

既存の .htaccess ルールの無効化

既存のルールを一時的に無効化したい場合(テスト目的など)、簡単にコメントアウトできます。その行の先頭にシャープ記号(#)を追加してください。

別の方法として、1行または複数行を選択し、Ctrl + /ショートカットを使用して無効化できます。

有効なメールアドレスが必要です