このガイドから、.htaccess ファイルとその機能について学び、それらを使用して Web サイトを最適化することができます。 .htaccess は単なるファイルですが、サーバーの設定を変更できるため、さまざまな操作が可能です。最も人気のある機能は、カスタムの「404 エラー」ページを作成できることです。 .htaccess の使い方は難しくありません。最終的には、テキスト ドキュメントにいくつかの簡単な命令を追加するだけです。
まず、ホストがそれをサポートしているかどうかを判断する必要があります
これに簡単に答えるのは難しいかもしれません。多くのホストは .htaccess をサポートしていますが、実際には特に明示していません。また、他の多くの種類のホストは機能しますが、ユーザーが .htaccess を使用することを許可していません。一般に、ホストが Unix または Linux システム、または任意のバージョンの Apache Web サーバーを使用している場合、理論的には .htaccess がサポートされますが、ホスティング プロバイダーによっては .htaccess の使用が許可されない場合があります。
ホストが .htaccess を許可しているかどうかを判断する良い兆候は、ホストがフォルダーのパスワード保護をサポートしているかどうかです。この機能を実現するには、ホスティング プロバイダーが .htaccess を使用する必要があります (もちろん、場合によっては、パスワード保護は提供されていても、.htaccess の使用は許可されません)。ホストが .htaccess をサポートしているかどうか不明な場合、最善の方法は、独自の .htaccess ファイルをアップロードして機能するかどうかを確認するか、ホスティング サービス プロバイダーに直接電子メールを送信して相談することです。
Apache システムの .htaccess ファイル (または「分散設定ファイル」) は、ディレクトリの設定を変更する方法を提供します。つまり、1 つ以上のディレクティブを含むファイルを特定のドキュメント ディレクトリに配置し、このディレクトリとすべてのディレクトリに作用します。ユーザーとして使用できるコマンドは、Apache のAllowOverride ディレクティブを通じて制限されます。
サブディレクトリ内のディレクティブは、上位ディレクトリまたはメイン サーバー構成ファイル内のディレクティブをオーバーライドします。
.htaccess は ASCII モードで、できれば権限を 644 に設定してアップロードする必要があります。
.htaccess は、フォルダーのパスワード保護、自動ユーザー リダイレクト、カスタム エラー ページ、ファイル拡張子の変更、特定の IP アドレスからのユーザーの禁止、特定の IP アドレスからのユーザーのみの許可、禁止されたディレクトリのリスト、および他のファイルをインデックスファイルとして使用します。
.htaccess ファイルの作成では、いくつかの問題が発生する場合があります。ファイルの作成は簡単です。テキスト エディタ (ワードパッドなど) で適切なコードを記述するだけです。本当の困難は、ファイルを保存することかもしれません。.htaccess には奇妙なファイル名 (実際にはファイル名はなく、8 文字の拡張子があるだけです) があり、一部のシステム (Windows 3.1 など) では受け入れられないためです。ほとんどのオペレーティング システムでは、ドキュメントを「.htaccess」 (引用符を含む) として保存するだけです。これが機能しない場合は、別の名前 (htaccess.txt など) を付けてサーバーにアップロードし、FTP ソフトウェアを使用して名前を直接変更する必要があります。
警告する
.htaccess を使用する前に、いくつかの警告を与える必要があります。サーバー上で .htaccess を使用することで問題が発生する可能性はまったくありませんが (何か問題があると機能しないだけです)、Microsoft FrontPage Extensions を使用する場合は特に注意する必要があります。 FrontPage Extensions 自体は .htaccess を使用するため、編集して独自の情報を追加することはできません。これが本当に必要な場合 (推奨されませんが、可能です)、まずサーバーから .htaccess ファイルをダウンロードし (存在する場合)、その前にコードを追加する必要があります。
2|.httacces ファイルの構成
ここで説明する .htaccess の最初の使用法は、カスタム エラー ページです。これにより、サービス プロバイダーが提供するエラー ページではなく、独自のパーソナライズされたエラー ページ (ファイルが見つからない場合など) を作成できるようになります。もしくはページが無い。これにより、何か問題が発生したときに Web サイトがよりプロフェッショナルに見えるようになります。スクリプトを使用して、エラーが発生したときに通知することもできます (たとえば、私は無料のウェブマスター ヘルプの PHP スクリプトを使用して、ページが見つからないときに自動的に電子メールを送信します)。
既知のページ エラー コード (404 Page Not Found など) は、次のテキストを .htaccess ファイルに追加することでカスタム ページに変えることができます。
ErrorDocument エラー番号 /file.html
たとえば、ルート ディレクトリに nofound.html ファイルがある場合、それを 404 エラー ページとして使用したいとします。
エラードキュメント 404 /notfound.html
ファイルが Web サイトのルート ディレクトリにない場合は、パスを次のように設定するだけで済みます。
エラードキュメント 500 /errorpages/500.html
最も一般的なエラーのいくつかを次に示します。
一般的なクライアント要求エラーの戻りコード:
400 - 不正なリクエスト 不正なリクエスト
401 認証が必要です。検証が必要です
403 禁止
404 Not Found ページが見つかりません
405 メソッドは許可されていません
408 リクエストがタイムアウトしました
411 コンテンツの長さが必要です
412 前提条件が失敗しました
413 リクエストエンティティが長すぎます
414 リクエスト URI が長すぎます
415 サポートされていないメディア タイプ
一般的なサーバー エラーの戻りコード:
500 内部サーバー エラー 内部サーバー エラー
次に、エラーが発生したときに表示するファイルを作成し、.htaccess とともにアップロードするだけです。
ユーザーは .htaccess を使用して、独自の事前作成されたエラー リマインダー ページを指定できます。一般に、エラーなどの特別なディレクトリを設定して、これらのページを配置できます。次に、次の命令を .htaccess に追加します。
エラードキュメント 404 /errors/notfound.html
エラードキュメント 500 /errors/internalerror.html
1 行に 1 つの命令。上記の最初の命令の意味は 404 に関するものです。つまり、必要なドキュメントが見つからない場合、ページは /errors ディレクトリに notfound.html ページとして表示されなければなりません。構文形式が次であることを確認するのは難しくありません。
ErrorDocument エラーコード/ディレクトリ名/ファイル名.拡張子
プロンプトを表示する情報がほとんどない場合は、次の例のように、特別なページを作成してコマンド内で HTML 番号を直接使用する必要はありません。
ErrorDocument 401 「このページにアクセスする権限がありません。あきらめてください。」
場合によっては、何らかの理由でディレクトリにインデックス ファイルが存在しないことがあります。これは、誰かがブラウザのアドレス バーにディレクトリへのパスを入力すると、ディレクトリ内のすべてのファイルが表示され、Web サイトに痕跡を残すことになります。安全上の危険を軽減します。
これを回避するには (多数の新しいインデックス ファイルを作成することなく)、.htaccess ドキュメントに次のコマンドを入力して、ディレクトリのリストが表示されないようにすることができます。 オプション - インデックス
場合によっては、特定の IP を持つユーザーのみに Web サイトへのアクセスを許可したい場合があります (たとえば、特定の ISP を持つユーザーのみにディレクトリへのアクセスを許可するなど) か、特定の IP アドレスをブロックしたい場合があります (たとえば、Low によって)。 -レベルのユーザーは掲示板にアクセスできなくなります)。もちろん、これはブロックしたい IP アドレスがわかっている場合にのみ機能しますが、最近のオンライン ユーザーのほとんどは動的 IP アドレスを使用しているため、これは使用を制限する一般的な方法ではありません。
次のコマンドを使用して IP アドレスを禁止できます。
000.000.000.000 から拒否
ここの 000.000.000.000 は、ブロックされる IP アドレスです。いくつかだけを指定すると、ネットワーク セグメント全体をブロックできます。 210.10.56. と入力すると、210.10.56.0 から 210.10.56.255 までのすべての IP アドレスがブロックされます。
次のコマンドを使用して、IP アドレスに Web サイトへのアクセスを許可できます。
000.000.000.000 から許可
許可される IP アドレスは 000.000.000.000 です。IP アドレスをブロックするのと同じように、ネットワーク セグメント全体をブロックできます。
全員がディレクトリにアクセスできないようにしたい場合は、以下を使用できます。
全員から否定する
ただし、これは、このディレクトリ内のドキュメントのスクリプトの使用には影響しません。
デフォルトのホームページファイルを変更する
通常、デフォルトのホームページのファイル名には、default、index などが含まれます。ただし、ディレクトリにデフォルトのファイルがなく、w3sky の w3sky.PHP などの特定のファイル名が存在する場合があります。この場合、ユーザはファイル名を覚えてアクセスするのが面倒である。新しいデフォルトのファイル名は .htaccess で簡単に設定できます。
DirectoryIndex の新しいデフォルトのファイル名
複数のリストを、リスト間の優先順位を示す順序でリストすることもできます。次に例を示します。
DirectoryIndex ファイル名.htmlindex.cgiindex.pldefault.htm
ディレクトリのインデックス ファイルとして、index.htm または Index.html を使い続けたくないかもしれません。たとえば、サイトで PHP ファイルを使用している場合、ディレクトリのインデックス ドキュメントとしてindex.PHP を使用できます。もちろん、「インデックス」ドキュメントに限定する必要はありません。必要に応じて、.htaccess を使用して foofoo.balh をインデックス ドキュメントとして設定することもできます。
これらの相互に置き換えられるインデックス ファイルをリストに配置すると、サーバーは左から右に検索して、実際のディレクトリにどのドキュメントが存在するかを確認します。何も見つからない場合は、ディレクトリのリストが表示されます (ディレクトリ ファイルのリストの表示をオフにしていない限り)。
DirectoryIndex インデックス.PHP インデックス.PHP3 messagebrd.pl インデックス.html インデックス.htm
.htaccess の最も便利な機能の 1 つは、同じサイト内またはサイト外の別のドキュメントにリクエストをリダイレクトすることです。これは、ファイル名を変更しても、ユーザーには古いアドレスを使用してファイルにアクセスしてもらいたい場合に非常に便利です。別のアプリケーション (私が便利だと思う) は、長い URL へのリダイレクトです。たとえば、ニュースレターでは、アフィリエイト リンクを指すために非常に短い URL を使用できます。リダイレクト ファイルの例を次に示します。
/location/from/root/file.ext をリダイレクトします
http://www.w3sky.com/new/file/123.html
上の例では、ルート ディレクトリにある oldfile.html という名前のファイルにアクセスするには、次のように入力します。
/oldfile.html
古いサブディレクトリ内のファイルにアクセスするには、次のように入力します。
/old/oldfile.html
.htaccess を使用して Web サイトのディレクトリ全体をリダイレクトすることもできます。 Web サイトに olddirectory という名前のディレクトリがあり、新しい Web サイトhttp://www.w3sky.com/newdirectory/に上記と同じドキュメントを作成した場合は、古いディレクトリ内のすべてのファイルをコピーできます。リダイレクトを実行します。それらを 1 つずつ宣言する必要はありません。
/olddirectory http://www.w3sky.com/newdirectoryにリダイレクトします
このようにして、サイト内の /olddirectory ディレクトリに送信されたリクエストは、追加された URL 情報も含めて新しいサイトにリダイレクトされます。たとえば、誰かが次のように入力するとします。
リクエストは次の場所にリダイレクトされます。
この機能は、正しく使用すると非常に強力です。
Web サイトのデザインを変更したり、ドキュメントを移動したり、ディレクトリを変更したりする場合があります。現時点では、検索エンジンからのアクセスや他の Web サイトからのリンクが失敗する可能性があります。この場合、次のコマンドを使用して、古い URL を新しいアドレスに自動的にリダイレクトできます。
/古いディレクトリ/古いドキュメント名 新しいドキュメントのアドレスをリダイレクトします
または、ディレクトリ全体をリダイレクトします。
古いディレクトリを新しいディレクトリにリダイレクトします
.htaccess にはさまざまな用途がありますが、これまでで最も人気があり、おそらく最も便利なのは、Web サイトのディレクトリの信頼できるパスワード保護に使用することです。 JavaScript などでもこれを実行できますが、完全なセキュリティを備えているのは .htaccess だけです (つまり、訪問者はディレクトリにアクセスする前にパスワードを知っている必要があり、「バックドア」はありません)。
.htaccess を使用してディレクトリをパスワード保護するには、2 段階のプロセスを実行します。最初の手順では、適切なコード行を .htaccess ドキュメントに追加し、保護するディレクトリに .htaccess ドキュメントを配置します。
AuthName “セクション名”
認証タイプ 基本
AuthUserFile /フル/パス/to/.htpasswd
有効なユーザーが必要です
「セクション名」を保護セクション「メンバーエリア」の名前に置き換えるなど、Web サイトに基づいて上記のコンテンツの一部を変更する必要がある場合があります。
/full/parth/to/.htpasswd は、.htpasswd ファイルを指す完全なサーバー パスに置き換える必要があります (このドキュメントについては後ほど説明します)。 Web スペースへの完全なパスがわからない場合は、システム管理者に問い合わせてください。
ディレクトリのパスワード保護は、.htaccess の他の機能よりも面倒です。Web サイトにアクセスするにはユーザー名とパスワードを含むドキュメントも作成する必要があり、関連情報は (デフォルトで) .htpasswd というドキュメントに保存されるためです。 .htaccess と同様、.htpasswd はファイル名がなく 8 ビットの拡張子が付いたドキュメントで、Web サイトのどこにでも配置できます (このときパスワードは暗号化する必要があります) が、Web ルートの外に保存することをお勧めします。ウェブサイトのディレクトリに保存し、ネットワーク経由でアクセスできないようにします。 1516501417
.htaccess を使用してディレクトリをパスワード保護する場合、パスワード ファイルへのパスが含まれます。セキュリティ上の理由から、他の人がその内容を見られないように .htaccess を保護する必要があります。ただし、これはドキュメントに対する権限など、他の方法でも実行できます。ただし、.htaccess 自体でも実行できます。次の命令を追加するだけです: 1516501417
許可、拒否を注文する
全員から否定する
.htaccess を使用してディレクトリ内のドキュメントのアクセス ユーザーと対応するパスワードを設定するには、まず次のように .htpasswd テキスト ドキュメントを生成します。
鍛造:y4E7Ec8e7EwV
ここでのパスワードは暗号化されており、ユーザーはパスワードを .htaccess でサポートされているエンコーディングに暗号化するツールをいくつか見つけることができます。このドキュメントを www ディレクトリに配置しないことをお勧めします。より安全な www ルート ディレクトリ ドキュメントの外に配置することをお勧めします。
許可されたユーザー文書を使用すると、次の指示を .htaccess に追加できます。
AuthUserFile .htpasswd のサーバー ディレクトリ
AuthGroupFile /dev/null (許可されたアクセスが必要なディレクトリ)
認証名入力パスワード
AuthType Basic (認可タイプ)
require user wsabstract (アクセスを許可されたユーザー。テーブル内のすべてのユーザーを許可したい場合は、require valid-user を使用できます)
括弧内は学習時に追加したコメントであることに注意してください。
IPからのアクセスを拒否する
特定の政府部門が自分のサイトのコンテンツにアクセスしたくない場合は、その部門の IP を .htaccess に追加することで除外できます。
例えば:
許可、拒否を注文する
210.10.56.32 からの拒否
219.5.45から拒否。
全員から許可する
2 行目は特定の IP を拒否し、3 行目は特定の IP 範囲 (219.5.45.0 ~ 219.2.45.255) を拒否します。
全員を拒否したいですか?すべてから拒否を使用するだけです。 IPだけでなくドメイン名でも設定可能です。
.htpasswd ドキュメント (テキスト エディターで作成可能) を作成したら、次のステップは、Web サイトへのアクセスに使用するユーザー名とパスワードを入力することです。
ユーザー名:パスワード
「password」の位置は暗号化されたパスワードになります。暗号化されたパスワードは、いくつかの方法で取得できます。1 つは、オンラインで入手できる作成されたスクリプトを使用するか、自分で作成する方法です。もう 1 つの優れたユーザー名/パスワード暗号化サービスは、ユーザー名とパスワードを入力して生成できる KxS Web サイトを使用する方法です。正しくフォーマットされたパスワード。
複数のユーザーの場合は、.htpasswd ドキュメントに同じ形式の新しい行を追加するだけで済みます。さらに、.htpasswd ファイルを簡単に管理し、ユーザーなどを自動的に追加/削除できる無料のスクリプト プログラムがいくつかあります。
.htaccess パスワードで保護されたディレクトリにアクセスしようとすると、ブラウザによって標準のユーザー名とパスワードのダイアログが表示されます。この方法が気に入らない場合は、スクリプトによっては、認証のためにページにユーザー名とパスワードの入力ボックスを埋め込むことができます。次の方法で、ブラウザの URL ボックスにユーザー名とパスワード (暗号化されていないもの) を入力することもできます。
http://ユーザー名:パスワード@ www.w3sky.com/directory/
他の人が自分の写真やドキュメントを Web ページにリンクすることを望まない場合は、htaccess コマンドを使用してリンクすることもできます。
必要な指示は次のとおりです。
リライトエンジンがオン
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?w3sky.com/.*$ [NC]
RewriteRule .(gif &line;jpg)$ - [F]
他の人のページで天窓が開いているのが良くないと思われる場合は、代わりに写真を使用できます。
リライトエンジンがオン
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?w3sky.com/.*$ [NC]
RewriteRule .(gif &line;jpg)$ http://www.w3sky.com/置換画像ファイル名 [R,L]
この方法では、すべての yourdomain.com トラフィックをwww.yourdomain.comにリダイレクトします(またはその逆)。実際、海外ではこの方法はPageRankにとって役に立たないと考えている人もいます。これは、Google 管理者ツールに優先ドメイン ツールがあり、Google のクローラーがクロールとランキングの優先ドメインとしてwww.yourdomain.comまたは yourdomain.com を使用するように指定できるため、リダイレクトは不要であると思われたためだと思います。しかし、多くの人がこれが効果的であることを実際に確認しています。いずれにせよ、この方法が SEO やページランクにダメージを与えるとは誰も言っていません。
.htaccess に次のように記述します。
オプション +フォローシンボリンク すべて -インデックス
リライトエンジンオン
rewriteBase/
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*)$ http://www.domain.com/ $1 [R=301,L]
3wの強制削除
以下では WordPress を例に挙げますが、他の状況ではそれを参照して自分で解決できます。通常、WordPress ディレクトリに .htaccess ファイルが存在する場合は、手動で作成します。パーマリンクを設定すると、.htaccessの内容は以下のようになります。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
具体的に何を意味するかは気にせず、RewriteBase / という行の下に追加するだけです。
RewriteCond %{HTTP_HOST} ^ www.yourdomain.tld $ [NC]
RewriteRule ^(.*)$ http://yourdomain.tld/ $1 [R=301,L]
これで完了です。もちろん、yourdomain.tld を独自のドメイン名に置き換えます。上記の 2 行は、フォームwww.yourdomain.tldを yourdomain.tld に書き換え、前者にアクセスするすべてのリンクを後者に永続的にリダイレクトすることを意味します。
ドメイン名の前に www を追加することが必須です
どうしても www を前に付けようとするのであれば、私の上記の言葉は無駄になってしまい、遺憾の意を表します。でも、できます。上記に追加した 2 行のコードを次のように変更するだけです。
RewriteCond %{HTTP_HOST} ^yourdomain.tld$ [NC]
RewriteRule ^(.*)$ http://www.yourdomain.tld/ $1 [R=301,L]
.htaccess は、サイト管理者がさまざまな目的に合わせて使用できる強力なツールであり、時間を節約し、Web サイトのセキュリティを向上させます。
.htaccess に関する特別な指示
* .htaccess を有効にするには、httpd.conf を変更し、AllowOverride を有効にし、AllowOverride を使用して特定のコマンドの使用を制限する必要があります。
* .htaccess 以外のファイル名を使用する必要がある場合は、AccessFileName ディレクティブを使用して変更できます。たとえば、.config を使用する必要がある場合は、次のようにサーバー構成ファイルで構成できます。
アクセスファイル名.config
* 一般に、メイン構成ファイルにアクセスできない場合を除き、.htaccess ファイルは使用しないでください。ユーザー認証は .htaccess ファイルを通じてのみ実現できるという誤解がよくありますが、実際にはそうではなく、ユーザー認証をメイン構成ファイルに記述するのが適切な方法です。 .htaccess ファイルは、コンテンツ プロバイダーが root 権限を持たずに特定のディレクトリのサーバー構成を変更する必要がある場合に使用する必要があります。サーバー管理者が構成を頻繁に変更したくない場合、特に ISP が同じマシン上で複数のユーザー サイトを実行しており、ユーザーが自分で構成を変更できることを望んでいる場合は、.htaccess ファイルを使用してユーザー自身が構成を変更できるようにすることができます。 。それにもかかわらず、一般的には、可能な限り .htaccess ファイルの使用を避ける必要があります。 .htaccess ファイルに配置したい設定は、メイン設定ファイルの
添付: .htaccess ツール接続
オンライン .htaccess ファイル ジェネレーター
http://cooletips.de/htaccess/
オンラインで .htaccess ファイルを生成できるため、リダイレクトやシステム エラー ファイルなどの設定が非常に簡単です。
.htaccess エディタ オンライン エディタ
カスタマイズ可能なデフォルトのエンコーディング、エラーページなど。