.htaccessでルールとリダイレクトを設定する方法
.htaccess ApacheWebサーバーでサポートされているディレクトリレベルの設定ファイルです。これは、グローバルサーバー設定を変更せずに、特定のアカウントのWebサーバー構成を変更(追加機能を有効または無効にする)するために使用されます。.htaccessファイルは、すべてを含む、配置されているディレクトリ全体で有効になります。ファイルとサブディレクトリ。このファイルに加えられた変更はすぐに実装され、サーバーを再起動する必要はありません。
.htaccessファイルの検索方法
一般的に使用される.htaccessルールのリスト:
- 承認/認証
- ブロック
- カスタムエラーページ
- Mod_Rewrite(リダイレクトルール)
- ドメインルートディレクトリの変更
ホスティングアカウントのメインの.htaccessファイルにアクセスするには、次の手順に従います。
1。 cPanelにログインします 。
2。 ファイルセクションに移動します>>ファイルマネージャー :
3。メインドメインの.htaccessファイルを編集する場合は、 public_htmlに移動します。 フォルダ。アドオンドメインに変更を加える必要がある場合は、 public_html / youraddondomain.comに移動してください フォルダ。
そこに到達したら、隠しファイル(ドットファイル)を表示する オプションは設定で有効になっています メニュー:
4。 .htaccessを見つけます ファイル、右クリック>>編集 :
5。ファイルマネージャに.htaccessファイルがない場合は、ファイルを使用して新しいファイルを作成してください。 オプション:
これで、独自の構成ルールを追加して保存する準備が整いました。
一般的な使用法 .htaccessファイルのルールを以下に示します。
承認/認証 –ディレクトリ/サブディレクトリのセキュリティ制限を指定します。
ディレクトリまたはそのいくつかをパスワードで保護できます。訪問者がディレクトリにアクセスしようとすると、ユーザー名とパスワードが必要になります。
このような保護を設定するには、次のことを行う必要があります。
1。保護するディレクトリを/home/cpanel_user/.htpasswds/に作成します フォルダ(例: public_html / test の場合 パスは.htpasswds/ public_html / test /)になります。
2。 passwdを作成します このディレクトリにファイルを作成し、このオンラインジェネレータを使用してハッシュアクセスの詳細を追加します。
3。次のディレクティブを.htaccessに追加します。
AuthType Basic
AuthName "Directory Name" AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd" require valid-user
ブロック –IPアドレスまたはドメインでユーザーをブロックします。不要な訪問者をブロックしたり、所有者や管理エリアなどがWebサイトの特定のセクションにアクセスできるようにしたりすると非常に便利です。
特定のブロックルールを設定するには、次のテキストを含む.htaccessファイルを作成します。
- 他のすべてのユーザーへのアクセスを許可し、X.X.X.XIPアドレスを持つユーザーをブロックする
<RequireAll>
Require all granted
Require not ip X.X.X.X
</RequireAll>
- 特定のX.X.X.XおよびY.Y.Y.YIPを除くすべての訪問者をブロックする
<RequireAll>
Require all denied
Require ip X.X.X.X
Require ip Y.Y.Y.Y
</RequireAll>
注: 非推奨の許可を混在させないでください 、拒否 、および注文 新しいRequireを含むディレクティブ ディレクティブ。
カスタムエラーページ –サイトのカスタムエラーページを作成できます。このオプションを使用すると、WebサイトのURLが機能しない場合に、Webサイトのテーマに一致するエラーメッセージをWebサイトの訪問者に表示できるため非常に便利です。これにより、たとえばデフォルトの「404 File Not Found」エラーを回避でき、困惑したままにするのではなく、カスタム設計されたエラーをガイドの方向とともにWebサイトのコンテンツに戻すことができます。
カスタムエラードキュメントを設定するには、以下のテキストを使用して.htaccessファイルを作成します。
ErrorDocument 404 /404.html
404(File Not Found)エラーが表示されるたびに、この行は、エラーページを設定したドメインのディレクトリルートにある404.htmlファイルをロードするようにApacheWebサーバーに指示します。
注 :他のエラー(403、500など)のドキュメントを設定するには、404を対応するエラーコードに置き換え、/404.htmlをエラーファイルへのパスに置き換えます。
Mod_Rewrite –WebページとURLが訪問者にどのように表示されるかを指定します。
.htaccessファイルでのMod_Rewriteルールの使用に注意を向けたいと思います。
デフォルトでは、Mod_RewriteはURLをファイルシステムパスにマップします。ただし、あるURLを別のURLにリダイレクトするためにも使用できます。
リダイレクトを作成する前に、より適切なリダイレクトタイプを選択する必要があります。
- 永続的なリダイレクト ステータスコードは301で、一時的なものとは異なり、ブラウザのメモリにキャッシュされます。これは、ページが移動されたことを意味し、ページにアクセスするすべての検索エンジンとユーザーエージェントにデータベースのURLを更新するように要求します。これは最も一般的なタイプのリダイレクトです。
- 一時的なリダイレクト ページがステータスコード302をブラウザに送信していることを意味します。コード302は、このリダイレクトを保存されたデータにキャッシュしないようにブラウザに指示します。訪問者または検索エンジンをリダイレクトしますが、検索エンジンは引き続き元のページにインデックスを付けます。これは、将来変更しないことが絶対に確実でない限り、推奨されるタイプのリダイレクトです。
.htaccessファイルを介して設定できる最も一般的で便利なリダイレクトのリストを以下に示します(例で指定されているドメインは、独自のドメインに置き換える必要があります):
からの永続的なリダイレクト example.com to domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ "http\:\/\/domain\.com/$1" [R=301,L]
一時的なリダイレクト example.com to domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ "http\:\/\/domain\.com\/" [R=302,L]
注 :以下は永続的なリダイレクトの例です。一時的なものは、コードの最後で[R =301、L]を[R =302、L]に置き換えることで定義できます(必要な場合)。
リダイレクト元 example.com/subfolder to domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^subfolder/$ "http\:\/\/domain\.com\/" [R=301,L]
HTTPからHTTPSにリダイレクトする たとえば.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]
- 特定のドメインの場合、example.com:
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]
- 特定のドメインの場合、example.com:
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
注 :すべてのページの名前が両方のドメインで一致する必要があります。一致しない場合、リダイレクトすると、ターゲットWebサイトに「ページが見つかりません」というメッセージが表示されます。
1つのページを新しいURLにリダイレクトします
Redirect 301 /old_page.html http://www.domain.com/new_page.html
注 :これは、削除されたページを404エラーにリダイレクトする場合、またはコンテンツ参照の更新後にSEOの目的で役立つ場合があります。
ディレクトリルートを変更しますメインドメインの場合はpublic_html/subfolder
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
注 :.htaccessファイルは、特定のルールを構成するドメインのディレクトリルートに配置する必要があります。
既存の.htaccessルールを無効にする
たとえば、テスト目的で既存のルールの一部を無効にする必要がある場合は、単にコメントアウトすることができます。これを行うには、ポンド記号#を追加します ルールの各行の先頭。
また、1つを選択し、 Ctrl + / を使用して、行または行のブロックを無効にすることもできます。 ショートカット。
以上です!
サポートが必要ですか?ヘルプデスクにお問い合わせください