GNU/Linux >> Linux の 問題 >  >> Linux

.htaccessファイルでリダイレクトを作成するための初心者向けガイド

サーバー構成ファイル(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サイトに配置されているいくつかの一般的な使用例。


Linux
  1. gawkの初心者向けガイド

  2. Web証明書のCSRファイルを作成します。

  3. ファイルを作成しているプロセスを特定する方法は??

  1. .htaccessファイルを介したアクセスのブロック

  2. Ansibleガイド:Ansibleを使用してファイルを管理する

  3. .tar.gz ファイルの作成時にディレクトリを除外する

  1. tcpdumpのフィルタリング:カオスからの順序の作成

  2. Linuxでのfirewalldの初心者向けガイド

  3. Apacheリダイレクトの作成