デザイナーと開発者のための.htaccessの初心者向けガイド
Webサーバーをカスタマイズするためのさまざまなツールの中で、.htaccess構成ファイルは非常に優れた資産です。あなたはできる 文書タイプ、構文解析エンジン、URLリダイレクトを素早くリセットする, そして他の多くの重要な機能。あまり技術的ではないウェブマスターは、あなた自身の.htaccessファイルを管理することの詳細に入ることができないかもしれません。しかし、トピック自体は興味深いものであり、いくつかの調査に値する.
この記事では、WebマスターおよびWeb開発者向けの、より意図的な概念のいくつかを紹介します。誰でも Apacheサーバー上で自分のWebサイトを立ち上げる 間違いなく彼らの.htaccessファイルを管理する方法を理解したいと思うでしょう。それ カスタマイズ性が高い そしてそれ どのWeb言語でも動作可能 PHPからRubyへ.
この記事の最後に、いくつかの外部Webアプリケーションを追加しました。 初心者が動的に.htaccessファイルを生成できるようにする.
.htaccessファイルを使う理由?
これはすばらしい質問です、そしておそらく私たちは答えることから始めるべきです “.htaccessファイルとは何ですか?”? これは、Apache Webサーバーによって使用される非常に特別な設定ファイルです。 .htaccessファイルはWebサーバーに伝えることができます さまざまな形式の情報を提示する方法、およびさまざまなHTTP要求ヘッダーを処理する方法.
本当にそれはの手段です 分権 Webサーバー設定を整理します。 1台の物理サーバーに、それぞれ独自の.htaccessファイルを使用して50の異なるWebサイトを保持できます。それはウェブマスターに多くの力を与えます。そうでなければ不可能です。しかし、なぜあなたはそれを使うべきですか?
最大の理由はセキュリティです。あなたはできる 特定のディレクトリをロックアウトするか、パスワードで保護する. これは、プライベートなプロジェクトや、少しセキュリティを強化したい新しいコンテンツ管理システムに最適です。しかし、404エラーメッセージを特定のWebページにリダイレクトするなどの一般的なタスクもあります。. これは1行のコードだけを取ります そしてそれは訪問者が行方不明のページにどう反応するかに劇的に影響を与えることができます.
.htaccessファイルは理解する価値があると他の人に納得させるために私が言うことができることは実際には多くありません。実際に動作していることが確認できたら、この小さな設定ファイルから得られるすべての値を認識することができます。また、この記事の残りの部分で、Webマスターを.htaccess構成の管理に照らし出すための洞察に富んだトピックをいくつかご紹介します。.
アクセスを許可/拒否
潜在的なスパムの訪問者を識別し、それらがあなたのウェブサイトへのアクセスを拒否することは可能です。. これは少し極端かもしれませんが、あなたがあなたのウェブサイトをターゲットにしている人や人々のグループがあることを知っていれば、そこから選択するいくつかのオプションがあります。あなたはIPアドレスによって訪問者を拒否または禁止するためにドメイン紹介を選ぶことができます.
許可するには、255.0.0.0から拒否を拒否123.45.6から拒否します。すべてから許可する
これらのサンプルコードはHtaccess Guideからコピーされたもので、開始するのに最適なテンプレートです。 2番目のIPアドレスに4番目の整数が欠けていることに注意してください。. このコードブロックは最初のIP(255.0.0.0)と123.45.6.0-255の範囲内のすべてのIPをターゲットにします。, その後、他のすべてのトラフィックを許可します。ウェブマスターは他の技術ほど頻繁にこれを使用しないかもしれませんが、理解することは有用です.
ディレクトリリストを禁止する
あなたが開いているディレクトリがある時があるでしょう デフォルトで閲覧を許可するように設定する. これは、ユーザーがあなたのimagesフォルダのように、内部ディレクトリ構造の中にリストされているすべてのファイルを見ることができることを意味します。いくつかのウェブマスターはディレクトリリストを許可したくないし、ありがたいことにコードスニペットは覚えておくのがとても簡単です.
オプション - インデックス
私はこの答えがStack Overflowを通して無数の時間を示しているのを見ました、そしてそれは覚えておくべき最も簡単な.htaccess規則の一つであるかもしれません.
実際には可能です これらの各ディレクトリ内に複数の.htaccessファイルを作成します。 したがって、そのうちの1つはパスワードで保護されていますが、その他はそうではありません。そしてあなたはまだ保つことができます オプション - インデックス 訪問者があなたのウェブサイト/ images /フォルダを閲覧できないように.
パスワード保護
あなたのディレクトリをパスワードで保護することは非常に一般的な手順です。 Webサイトに不可欠な管理領域やその他のフォルダを保護する. 時々、あなたは少数の人々にだけアクセスを提供したいと思うでしょう。パスワードは、ハッカーがWebサイトの管理パネルにアクセスするのを防ぐためのものです。しかしどちらにせよ、それは多くの問題に対する非常に強力な解決策です。.
重要なコードスニペットの概要を説明した、パスワード保護に関する便利なガイドがあります。あなたがする必要があります ユーザー名/パスワード資格情報を格納するパスワードファイルを生成します. このようにして、Apacheはユーザーにアクセス権を付与する必要があるかどうかを確認するためにユーザーが入力した内容と照合できます。また、ユーザー名とパスワードのサンプルを生成する方法がわかります。.
時間を節約できるように、このhtpasswordジェネレータを使用することをお勧めします。. 構文は常に完璧になりますので、パスワードを自分で暗号化する必要はありません。. もう1つの優れた選択肢は、ディレクトリリスト全体をパスワードで保護することです。この例はCSS-Tricksコードスニペットギャラリーで見ることができます。.
AuthType Basic AuthName "この領域はパスワードで保護されています" AuthUserFile /full/path/to/.htpasswd valid-userが必要です
WordPressのセキュリティ
このパスワード保護のアイデアを有効に活用するために、実際の例を表示しましょう。このより複雑なコードスニペットは WordPressのwp-login.phpファイルにアクセスするユーザーにユーザー認証を強制する. あなたは他の多くのWordPress保護スニペットを持っているAsk Apacheの元のソースを見つけるでしょう.
[拒否]を注文し、すべてからの拒否を許可 "AuthUserFile /web/askapache.com/.htpasswda1" AuthType Basicでvalid-userを要求する
そして、あなたがこれらの.htaccess規則に従うつもりならば、それはまた管理領域をパスワードで保護するのを助けるかもしれません。通常 wp-login.php fileはあなたのシステムに彼らの方法を強引に試みる人々から最も多くのヒットを得ようとしています。したがって、上記のサンプルコードだけでも 十分な追加セキュリティ以上 あなたのWordPressウェブサイトのために.
HTTP URL書き換えルール
URLの書き換えは、おそらく.htaccessファイルの最も一般的な用途の1つです。 WordPressのデフォルトインストールは 管理パネルから直接.htaccessファイルを生成する. これはあなたが.php?p = 1構造を持たないきれいなURLを作成することを可能にします.
この書き換え例を見てみたい 下線をダッシュに更新する方法 それ以来 最も重要な要素がたくさん含まれています.
Options + FollowSymLinks RewriteEngine on RewriteBase / RewriteRule!\。(html | php)$ - [S = 4] RewriteRule ^([^ _] *)_([^ _] *)_([^ _] *)_( [^ _] *)_(。*)$ $ 1- $ 2- $ 2- $ 3- $ 4- $ 5 [E = uscor:はい] RewriteRule ^([^ _] *)_([^ _] *)_([^ _ ] *)_(。*)$ $ 1- $ 2- $ 3- $ 4 [E = uscor:はい] RewriteRule ^([^ _] *)_([^ _] *)_(。*)$ $ 1- $ 2- $ 3 [E = uscor:はい] RewriteRule ^([^ _] *)_(。*)$ $ 1- $ 2 [E = uscor:はい] RewriteCond%ENV:uscor ^はい$ RewriteRule(。*)http: //d.com/$1 [R = 301、L]
RewriteEngine そして RewriteBase ほとんどの場合、これらの正確な値に設定できます。しかし、他のものが機能するにはRewriteEngineをオンにする必要があります。オンラインでたくさんのmod_rewriteを有効にする方法を説明したガイドがあり、あなたのホスティングプロバイダも助けになります。.
構文が次のパターンに従っていることに注意してください。 RewriteRules 頂点で。これらの規則は HTTPリクエストとして送信されているケースと一致. これらはRewriteRuleによって答えられます。この場合、RewriteRuleはすべてをドメインにリダイレクトします。 d.com. [R = 301、L]のような末尾の括弧は書き換えフラグと呼ばれますが、これは重要ですが、より高度なトピックです。.
mod_rewriteの構文は間違いなく少しわかりにくいですが、怖がらないでください。スニペットは他の例ではずっと簡単に見えます。.
始めたばかりのときは、実際のURLを使用してコードサンプルを生成するのに役立つこのmod_rewrite Webアプリケーションをお勧めします。これは素晴らしいツールです。構文内のさまざまな項目を調べて、それらがRewriteルールで実際に何をしているのかを確認できるからです。これは勉強する簡単な例を使ったもう一つの素晴らしいチュートリアルです:
RewriteRule ^ dir /([0-9] +)/?$ /index.php?id=$1 [L]
一度にこれらのすべてに自分自身をオーバーロードしようとしないでください。 URLを[0-9a-zA-Z] +などのパターンで書き換える方法を実際に理解するには、3〜4か月以上かかりました。練習を続けて、間に合うように私はあなたがそれが常識的な知識であるようにこのものを得ることを約束します.
ウェブマスターのためのコードスニペット
私は使いやすいスニペットが大好きで、ウェブマスターのための適切な.htaccessコードのこの小さなコレクションをまとめたいと思います。これらのアイデアのそれぞれは、他のコードブロックと共にあなた自身の.htaccessファイルにうまく適合することができます。これらのスニペットのほとんどは、 あなたのWebサーバ環境における素早い問題や修正を解決する. オンラインで始めたばかりの真新しいウェブマスターのための完璧なApacheセットアップを想像してみてください。.
DirectoryIndexの設定
DirectoryIndexのコマンドは、通常1行で使用されます。どのドキュメントを最初にどのドキュメントとして扱うべきかをApacheに伝えることができます。 “メイン” 資料。デフォルトではこれは index.html、index.php、index.asp、その他のインデックスファイルなどのターゲットアイテム. しかし、私が以下でコピーしたこのコードスニペットを使って、あなたはこのルートドキュメントをあなたが好きなものにする能力を持っています.
DirectoryIndex index.html index.cgi index.php
文書の順序は最も重要度の高いものから始めて、重要度の低いものから順に並べてください。そのため、HTMLファイルやCGIファイルがない場合は、フォールバックに進みます。 index.php. そして、あなたもこれらのファイルに名前を付けることができます home.php または someotherfile.php そしてそれはすべて有効な構文です.
WWWまたは非WWWサブドメインを強制する
指定しない場合、Googleは両方のバージョンのWebサイトドメインで作業できます。 www.domain.com あるいは単に domain.com. 私の経験では これらのいずれかを選択して、唯一の選択肢として設定してください .htaccess経由そうすれば、GoogleはWWWサブドメインを指すものもあれば、さまざまなURLを索引付けしないものもあります。.
#RewriteCondでWWWサブドメインのRewriteEngineを強制する%HTTP_HOST ^ domain.com [NC] RewriteRule ^(。*)$ http://www.domain.com/$1 [L、R = 301]#RewriteCondでサブドメインなしRewriteEngine% HTTP_HOST!^ domain.com $ [NC] RewriteRule ^(。*)$ http://domain.com/$1 [L、R = 301]
このコードスニペットはCSS-Tricksアーカイブからのもので、非常に便利なソリューションを提供します。あなたはあなた自身のウェブサイトに必要なものになるようにドメインを更新するべきです。それ以外の場合は問題が発生し、すぐに気付くでしょう。しかし、私はこれら2つのオプションのうちの1つを強制することを強くサポートしています、そしてそれは新しいウェブサイトを立ち上げた後の私のタスクリストの一番上にあります.
メディアファイルの強制ダウンロード
もう1つの非常に重要なスニペットは、特定のメディアタイプを ブラウザに表示されるのではなくダウンロードする. すぐに私はPDF文書とダウンロード可能なフォーマットで提示されるかもしれないMP3オーディオファイルを考えることができます、しかしあなたはどうしますか? それらがダウンロード可能であることを確認してください? 私はこのコードスニペットを概説するHtaccessガイドで公開された同様の記事を見つけました.
AddTypeアプリケーション/オクテットストリーム.zip .mp3 .mp4
この行の最後にもっと多くのファイルタイプを含めてください。オクテットストリームのMIMEタイプを使用するすべてのメディアフォーマットはダウンロード可能です。 .htaccessでこれを強制することは、人々がブラウザでこれらのファイルを見ることができないようにするための非常に直接的な方法です。.
カスタムエラードキュメント
最後に追加したいのは、カスタムエラードキュメントの完全なテンプレートです。通常、これらの番号コードはサーバー側でのみ見られます。しかし、あなたが精通しているべきこれらのエラー文書がたくさんあります。いくつかの例があります 403/404エラー そしてその 301リダイレクト.
このエラーコードテンプレート 100から始まり500エラーに上方移動. あなたが明らかにこれらのすべてを必要としないことに注意してください。最も一般的なエラーだけが必要になるでしょう、そしてもしあなたが必要と感じているならば、おそらくいくつかのあいまいなスニペット.
コードを認識しない場合は、ウィキペディアで調べて理解を深めてください。.
ErrorDocument 100 / 100_CONTINUEのErrorDocument 101 / 101_SWITCHING_PROTOCOLSのErrorDocument 102 / 102_PROCESSINGのErrorDocument 200 / 200_OKのErrorDocument 201 / 201_CREATEDのErrorDocument 202 / 202_ACCEPTEDのErrorDocument 203 / 203_NON_AUTHORITATIVEのErrorDocument 204 / 204_NO_CONTENTのErrorDocument 205 / 205_RESET_CONTENTのErrorDocument 206 / 206_PARTIAL_CONTENTのErrorDocument 207 / 207_MULTI_STATUSのErrorDocument 300 / 300_MULTIPLE_CHOICESのErrorDocument 301 / 301_MOVED_PERMANENTLYのErrorDocument 302 / 302_MOVED_TEMPORARILYのErrorDocument 303 / 303_SEE_OTHERのErrorDocument 304 / 304_NOT_MODIFIEDのErrorDocument 305 / 305_USE_PROXYのErrorDocument 307 / 307_TEMPORARY_REDIRECTのErrorDocument 400 / 400_BAD_REQUESTのErrorDocument 401 / 401_UNAUTHORIZEDのErrorDocument 402 / 402_PAYMENT_REQUIREDのErrorDocument 403 / 403_FORBIDDENのErrorDocument 404 / 404_NOT_FOUNDのErrorDocument 405 / 405_METHOD_NOT_ALLOWEDのErrorDocument 406 / 406_NOT_ACCEPTABLE ErrorDocument 407 / 407_PROXY_AUTHENTICATION_REQUIRED ErrorDocument 408 / 408_REQUEST_TIME_OUT ErrorDocument 409 / 409_CONFLICTのErrorDocument 410 / 410_GONEのErrorDocument 411 / 411_LENGTH_REQUIREDのErrorDocument 412 / 412_PRECONDITION_FAILEDのErrorDocument 413 / 413_REQUEST_ENTITY_TOO_LARGEのErrorDocument 414 / 414_REQUEST_URI_TOO_LARGEのErrorDocument 415 / 415_UNSUPPORTED_MEDIA_TYPEのErrorDocument 416 / 416_RANGE_NOT_SATISFIABLEのErrorDocument 417 / 417_EXPECTATION_FAILEDのErrorDocument 422 / 422_UNPROCESSABLE_ENTITYのErrorDocument 423 / 423_LOCKEDのErrorDocument 424 / 424_FAILED_DEPENDENCYのErrorDocument 426 / 426_UPGRADE_REQUIREDのErrorDocument 500 / 500_INTERNAL_SERVER_ERRORのErrorDocument 501 / 501_NOT_IMPLEMENTEDのErrorDocument 502 / 502_BAD_GATEWAYのErrorDocument 503 / 503_SERVICE_UNAVAILABLEのErrorDocument 504 / 504_GATEWAY_TIME_OUTのErrorDocument 505 / 505_VERSION_NOT_SUPPORTEDのErrorDocument 506 / 506_VARIANT_ALSO_VARIESのErrorDocument 507 / 507_INSUFFICIENT_STORAGEのErrorDocument 510 / 510_NOT_EXTENDED
オンラインの.htaccess Webアプリケーション
- Htaccess Builder
- .htaccessリダイレクトジェネレータ
- .htaccessEditor - .htaccessファイルを作成する
- GenerateIt.netによるModリライトジェネレータ
その他の有用な資料
- .Httpd Wikiのhtaccess
- 公式Apache htaccessドキュメント
- Apacheブログに尋ねる - Htaccess Archives
- htaccessとmod_rewriteの究極のガイド
- Mod_Rewriteの規則について知りたかったが、尋ねるのが怖かった
最終的な考え
.htaccessファイルについてオンラインで議論している無数のリソースがたくさんあります。私のリンク先の記事とWebアプリケーションは、始めるのに最適な場所です。しかし、新しいアイディアを実践し続け、恐れないでください。 コードスニペットのテスト. 限り バックアップファイルがあります それからあなたはあなたが好きなものを試すことができ、それは楽しい学習体験です.
あなたが.htaccess管理について他のアイデアや提案を持っているならば、下記のポストディスカッションエリアで我々と共有してください.