サーバー構成ファイル(httpd.conf
)にrootアクセスせずに、ApacheWebサーバーで実行されているWebサイトの構成を変更する必要があると感じたことはありませんか。 )?これが.htaccess
です ファイルはです。
.htaccess
fileは、ディレクトリごとにWebサイトの構成を変更する方法を提供します。ファイルは、そのディレクトリとそのサブディレクトリに適用される1つ以上の構成ディレクティブを含む特定のディレクトリに作成されます。共有ホスティングでは、.htaccess
を使用する必要があります サーバーの構成を変更するためのファイル。
[お楽しみいただけるかもしれません:ウェブ開発者が必要とする6つのシステム管理者スキル]
.htaccessファイルの一般的な使用法
.htaccess
ファイルにはいくつかのユースケースがあります。最も一般的な例は次のとおりです。
- 特定のURLのリダイレクト
- 404ページなどのカスタムエラーページを読み込む
- ウェブサイトをHTTPではなくHTTPSに強制する
- 特定のIPアドレスによるWebサイトへのアクセスを許可または拒否します
- サーバー上の特定のディレクトリをパスワードで保護する
.htaccessを使用しない場合
.htaccess
fileは、メインサーバー構成ファイルhttpd.conf
にアクセスできない場合によく使用されます。 または仮想ホスト構成。これは、共有ホスティングを購入した場合にのみ発生します。メインサーバーの構成ファイル(httpd.conf
など)を編集することで、上記のすべてのユースケースを実現できます。 )または仮想ホスト構成ファイルなので、.htaccess
は使用しないでください。 それらのファイルにアクセスできるとき。 .htaccess
に配置する必要のある構成 ファイルは、<ディレクトリ>にも同様に効果的に追加できます。 メインサーバーまたは仮想ホストの構成ファイルのセクション。
.htaccessの使用を避ける理由
.htaccess
の使用を避ける理由は2つあります。 ファイル。それらを詳しく見てみましょう。
最初 :パフォーマンス- AllowOverrideの場合 .htaccess
の使用を許可するように設定されています ファイル、httpd
.htaccess
を検索します 親ディレクトリから始まるすべてのディレクトリ内のファイル。これは、使用しているかどうかに関係なく、パフォーマンスに影響を与えます。 .htaccess
ディレクトリからドキュメントが要求されるたびにファイルが読み込まれます。
適用する必要のあるディレクティブの全体像を把握するには、httpd
常に.htaccess
を検索します 親ディレクトリから始まり、ターゲットサブディレクトリに到達するまでのファイル。ディレクトリ/public_html/test_web/content
からファイルがリクエストされた場合 、httpd
次のファイルを探す必要があります:
/.htaccess
-
/public_html/.htaccess
-
/public_html/test_web/.htaccess
-
/public_html/test_web/content/.htaccess
そのため、ファイルが存在しない場合でも、サブディレクトリのコンテンツからのファイルアクセスごとに4つのファイルシステムアクセスが実行されました。
2番目 :セキュリティ-.htaccess
に変更を加える権限をユーザーに付与します ファイルを使用すると、特定のWebサイトまたは仮想ホストのサーバー構成を完全に制御できます。 .htaccess
内のすべてのディレクティブ ファイルは、httpd
に配置されたものと同じ効果があります 構成ファイル自体、およびこのファイルに加えられた変更は、サーバーを再起動する必要なしに即座に有効になります。これは、WebサーバーとWebサイトのセキュリティの観点からリスクを伴う可能性があります。
.htaccessファイルを有効にする
.htaccess
を有効にするには ファイルの場合、サーバーに対するsudo/root権限が必要です。
httpd
を開きます Webサイトの構成ファイル:
/etc/httpd/conf/test.conf
.htaccess
を許可するには、サーバーの仮想ホストファイルに次の構成ディレクティブを追加する必要があります DocumentRoot内のファイル ディレクトリ。次の行が追加されていない場合は、.htaccess
ファイルは機能しません:
</VirtualHost>
<Directory /var/www/test.com/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
共有ホスティングの場合、これはホスティングサービスプロバイダーによってすでに許可されています。 .htaccess
を作成するだけです。 public_html
のファイル サービスプロバイダーからアクセス権が付与され、Webサイトファイルをアップロードするディレクトリ。
リダイレクトURL
あるURLを別のURLにリダイレクトすることが目標の場合は、リダイレクト ディレクティブは、使用できる最良のオプションです。古いURLでクライアントからリクエストが送信されると、リクエストは新しい場所の新しいURLに転送されます。
別のドメインに完全にリダイレクトする場合は、次のように設定できます。
# Redirect to a different domain
Redirect 301 "/service" "https://newdomain.com/service"
古いURLを同じホスト上の新しいURLにリダイレクトするだけの場合:
# Redirect to a URL on the same domain or host
Redirect 301 "/old_url.html" "/new_url.html"
Load a custom 404 Error page
ユーザーエクスペリエンスを向上させるには、ウェブサイト上のリンクのいずれかが間違った場所を指している場合、またはドキュメントが削除されている場合に、カスタムエラーページを読み込みます。
カスタム404ページを作成するには、404ページとして機能するWebページを作成してから、次のコードを.htaccess
に追加します。 ファイル:
ErrorDocument 404 /error/pagenotfound.html
/error/pagenotfound.html
を変更する必要があります 404ページの場所に移動します。
ウェブサイトでHTTPの代わりにHTTPSを強制的に使用する
WebサイトでHTTPSを使用するように強制する場合は、 RewriteEngineを使用する必要があります .htaccess
のモジュール ファイル。まず、 RewriteEngineをオンにする必要があります .htaccess
のモジュール ファイルを作成し、確認する条件を指定します。これらの条件が満たされている場合は、それらの条件にルールを適用します。
次のコードスニペットは、すべてのリクエストをHTTPSに書き換えます。
# Turn on the rewrite engine
RewriteEngine On
# Force HTTPS and WWW
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.test-website.com/$1 [R=301,L]
各行を見ていきましょう。
RewriteEngineオン RewriteEngineをオンにします モジュール。これは必須です。そうしないと、条件とルールが機能しません。
最初の条件は、www
かどうかをチェックします 入力されます。 [OR、NC] ケースなしの略です 、これは、入力されたURLに大文字または小文字が混在している場合でも意味します。
次に、HTTPSプロトコルがユーザーによってすでに入力されているかどうかを確認します。 %{https}オフ HTTPSプロトコルが使用されなかったことを意味します。
RewriteCondの場合 満足している場合は、 RewriteRuleを使用します URLをHTTPSにリダイレクトします。この場合、リクエストが行われるたびにすべてのURLがHTTPSにリダイレクトされることに注意してください。
[Red Hatの無料ガイド:ビジネスを自動化するための5つのステップ。 ]
まとめ
ウェブサイトの所有者は、.htaccess
をよく使用します 彼らのウェブサイトの振る舞いを制御するためのファイル。この記事では、.htaccess
の基本について説明しました。 ファイルと、ほとんどのWebサイトに配置されているいくつかの一般的な使用例。