.htaccess ちょっとした知識

.htaccess ちょっとした知識
.htaccess では、フォルダーのパスワード保護、ユーザーの自動リダイレクト、エラー ページのカスタマイズ、ファイル拡張子の変更、特定のユーザー IP アドレスのブロック、特定の IP アドレスのみの許可、ディレクトリ リストの停止、他のファイルのインデックス ファイルとしての使用など、さまざまな操作を実行できます。
1. はじめに ファイル名.htaccess 属性 644 (RW-R–R–)
htaccess は、それが配置されているディレクトリの下にあるすべてのサブディレクトリに影響します。ほとんどのコンテンツは 1 行に収める必要があり、折り返さないでください。そうしないとエラーが発生します。
2. エラー文書
公式文書: ErrorDocument ディレクティブ
エラードキュメントコードドキュメント

エラードキュメント 400 /errors/badrequest.html
エラードキュメント 404 http://yoursite/errors/notfound.html
エラードキュメント 401「認証が必要です」
(以下の内容に二重引用符がある場合は、\" としてエスケープする必要があることに注意してください)
一般的な HTTP ステータス コード
成功したクライアントリクエスト
200 大丈夫です
201 作成済み
202 承認済み
203 非権威情報
204 コンテンツなし
205 コンテンツをリセット
206 部分的なコンテンツ
クライアントリクエストがリダイレクトされました
300 複数選択問題
301 永久に移動
302 一時的に移動
303 その他を見る
304 変更されていません
305 プロキシを使用する
クライアントリクエストエラー
400 不正なリクエスト
401 認証が必要です
402 支払いが必要です (まだ使用されていません)
403 禁止
404 見つかりません
405 メソッドは許可されていません
406 受け入れられません (エンコード)
407 プロキシ認証が必要です
408 リクエストがタイムアウトしました
409 競合するリクエスト
410 消えた
411 コンテンツの長さが必要です
412 前提条件が失敗しました
413 リクエストエンティティが長すぎます
414 リクエスト URI が長すぎます
415 サポートされていないメディアタイプ
サーバーエラー
500 内部サーバーエラー
501 実装されていません
502不正なゲートウェイ
503 サービスは利用できません
504 ゲートウェイタイムアウト
505 HTTP バージョンがサポートされていません
3. パスワード保護
公式文書: 認証、承認、アクセス制御
パスワードファイルは.htpasswdであると仮定します
AuthUserFile /usr/local/safedir/.htpasswd (ここではフルパス名を使用する必要があります)
AuthName パスワードを入力
認証タイプ 基本
一般的な検証方法は 2 つあります。
ユーザーwindixを要求する
(ユーザーwindixのみがログインできます)
有効なユーザーを要求する
(正当なユーザーであればログインできます)
ヒント: htpasswd コマンド (Apache 組み込み) を使用してパスワード ファイルを生成する方法
最初の世代ではパスワードファイルの作成が必要です
htpasswd -c .htpasswd ユーザー1
後で新しいユーザーを追加する
htpasswd .htpasswd ユーザー2
4. htaccess 経由で SSI を有効にする
追加タイプ text/html .shtml
AddHandler サーバー解析 .shtml
オプション インデックス FollowSymLinks 含む
ディレクトリインデックス index.shtml index.html
5. IPによるユーザーのブロック
注文 許可、拒否
123.45.6.7 からの拒否
12.34.5 からの拒否 (クラス C アドレス全体)
すべてを許可する
6. リファラーによるユーザー/サイトのブロック リファラーによるユーザー/サイトのブロックには mod_rewrite モジュールが必要です 例 1. 単一のリファラーをブロックする: badsite.com
RewriteEngineオン
# オプション +FollowSymlinks
書き換え条件 %{HTTP_REFERER} badsite\.com [NC]
書き換えルール .* – [F]
例 2. 複数のリファラーをブロックする: badsite1.com、badsite2.com
RewriteEngineオン
# オプション +FollowSymlinks
書き換え条件 %{HTTP_REFERER} badsite1\.com [NC、OR]
書き換え条件 %{HTTP_REFERER} badsite2\.com
書き換えルール .* – [F]
[NC] – 大文字と小文字を区別しない
[F] – 403 禁止
上記のコードでは、「Options +FollowSymlinks」ステートメントがコメント アウトされていることに注意してください。サーバーの httpd.conf セクションで FollowSymLinks が設定されていない場合は、この文を追加する必要があります。そうしないと、「500 内部サーバー エラー」エラーが発生します。
7. 悪質なボットとサイトリッパー(オフラインブラウザとも呼ばれます)をブロックする 悪質なボットとオフラインブラウザをブロックするには、mod_rewrite モジュールが必要です 悪質なボットとは?たとえば、スパムメール アドレスを取得するボットや robots.txt に準拠していないボット(Baidu など)などです。
HTTP_USER_AGENTに基づいて決定できます。
(しかし、「zhongsou.com」のように、エージェントを「Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)」に設定する恥知らずなサイトも存在します。これはあまりにも悪質で、私たちには何もできません。)
RewriteEngine オン
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [または]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:[email protected] [または]
書き換え条件 %{HTTP_USER_AGENT} ^ChinaClaw [または]
RewriteCond %{HTTP_USER_AGENT} ^カスタム [または]
書き換え条件 %{HTTP_USER_AGENT} ^DISCo [または]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [または]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [または]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [または]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [または]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [または]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [または]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [または]
書き換え条件 %{HTTP_USER_AGENT} ^EyeNetIE [または]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [または]
書き換え条件 %{HTTP_USER_AGENT} ^GetRight [または]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [または]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [または]
RewriteCond %{HTTP_USER_AGENT} ^了解 [OR]
書き換え条件 %{HTTP_USER_AGENT} ^GrabNet [または]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [または]
RewriteCond %{HTTP_USER_AGENT} ^HMView [または]
書き換え条件 %{HTTP_USER_AGENT} HTTrack [NC、OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ ストリッパー [または]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ ライブラリ [NC、OR]
書き換え条件 %{HTTP_USER_AGENT} ^InterGET [または]
RewriteCond %{HTTP_USER_AGENT} ^インターネット\ Ninja [または]
書き換え条件 %{HTTP_USER_AGENT} ^JetCar [または]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [または]
RewriteCond %{HTTP_USER_AGENT} ^larbin [または]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [または]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ ダウンローダー [または]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ ツール [または]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [または]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [または]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [または]
書き換え条件 %{HTTP_USER_AGENT} ^NetAnts [または]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [または]
RewriteCond %{HTTP_USER_AGENT} ^Net\ ヴァンパイア [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [または]
書き換え条件 %{HTTP_USER_AGENT} ^Octopus [または]
RewriteCond %{HTTP_USER_AGENT} ^オフライン\ エクスプローラー [または]
RewriteCond %{HTTP_USER_AGENT} ^オフライン\ ナビゲーター [または]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [または]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [または]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [または]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [または]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [または]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [または]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [または]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [または]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [または]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [または]
書き換え条件 %{HTTP_USER_AGENT} ^tAkeOut [または]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [または]
書き換え条件 %{HTTP_USER_AGENT} ^VoidEYE [または]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [または]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [または]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [または]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [または]
書き換え条件 %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [または]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [または]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [または]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [または]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [または]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [または]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [または]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [または]
RewriteCond %{HTTP_USER_AGENT} ^Wget [または]
RewriteCond %{HTTP_USER_AGENT} ^Widow [または]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [または]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [または]
書き換え条件 %{HTTP_USER_AGENT} ^Zeus
書き換えルール ^.* – [F,L]
[F] – 403 禁止
[L] – リンク
8. デフォルトのディレクトリページを変更する
ディレクトリインデックス index.html index.php index.cgi index.pl
9. 単一ファイルへのリダイレクト
/old_dir/old_file.html を http://yoursite.com/new_dir/new_file.html にリダイレクトします
ディレクトリ全体
/old_dir を http://yoursite.com/new_dir にリダイレクトします
効果: ディレクトリを移動するのと同じ
http://yoursite.com/old_dir -> http://yoursite.com/new_dir
http://yoursite.com/old_dir/dir1/test.html -> http://yoursite.com/new_dir/dir1/test.html
ヒント: ユーザー ディレクトリの使用時にリダイレクトが機能しない問題の解決方法 http://mysite.com/~windix などの Apache のデフォルトのユーザー ディレクトリを使用している場合、http://mysite.com/~windix/jump にリダイレクトすると、次のリダイレクトが機能しないことがわかります。
リダイレクト / ジャンプ http://www.google.com
正しい方法は変化すること
リダイレクト /~windix/jump http://www.google.com
(出典: 「サイト」内の .htaccess リダイレクトがリダイレクトされない: なぜでしょうか?)

10. .htaccessファイルの閲覧を禁止する
注文 許可、拒否
すべてを拒否する
11. MIMEタイプの追加
AddType アプリケーション/x-shockwave-flash swf
ヒント: ダウンロードを促すには、タイプを application/octet-stream に設定してください
12. 画像やその他のファイルタイプのホットリンクを防止するホットリンク防止にはmod_rewriteモジュールが必要
RewriteEngineオン
書き換え条件 %{HTTP_REFERER} !^$
書き換え条件 %{HTTP_REFERER} !^http://(www/\.)?mydomain.com/.*$ [NC]
書き換えルール \.(gif|jpg|js|css)$ – [F]
分析:
HTTP_REFERER が空でない場合(ソースは直接接続ではなく別のサイトです)、HTTP_REFERER が (www.)mydomain.com で始まっていない場合(大文字と小文字を区別しません [NC])(ソースはこのサイトではありません)
.gif/.jpg/.js/.css で終わるすべてのファイルに対して 403 Forbidden エラーを返す [F]
次の例に示すように、応答を指定することもできます。
書き換えルール \.(gif|jpg)$ [R,L]
[R] – リダイレクト
[L] – リンク
13. ディレクトリリストの防止
インデックス無視*
インデックス無視 *.jpg *.gif
ヒント:
ディレクトリ一覧表示を許可する: オプション + インデックス
ディレクトリ一覧を無効にする: オプション -Indexes
プロンプト情報を表示: HEADER ファイル、README ファイル

<<:  inmotionhostingホスト紹介

>>:  ixwebhosting 専用 IP と共有 IP スイッチング

推薦する

OneAsiaHost: 12ドル/四半期/128M/10Gスペース/100Gトラフィック/OpenVZ

OneAsiaHost は、OpenVZ および KVM アーキテクチャに基づく VPS を提供す...

CloudCone: $24/年/1GB メモリ/20GB SAS スペース/2TB トラフィック/1Gbps/DDOS/KVM/ロサンゼルス CN2 GIA

CloudCone は比較的アクティブなホスティング プロバイダーで、主にロサンゼルス MC VP...

BandwagonHost: $84/年/1GB メモリ/20GB SSD スペース/500GB トラフィック/1Gbps ポート/KVM/ロサンゼルス CN2 GIA/日本 SoftBank

アメリカのホスティングプロバイダーであるBandwagonHost(中国語名:BandwagonHo...

Hostodo: $12/年/512MB メモリ/55GB スペース/2TB トラフィック/OpenVZ/ロサンゼルス

Hostodo では、次のとおり割引の新たな波が起こっています。 VZ-512 CPU: 4コア メ...

LAUNCH VPS: $24/年/512MB RAM/10GB SSD スペース/512GB 帯域幅/KVM/フィラデルフィア

LAUNCH VPS は、アメリカのホスティング プロバイダーで、主に仮想ホスティング、VPS など...

Singularity Cloud: 27元/月/2コア/1GBメモリ/15GB SSDスペース/3TBトラフィック/100Mbpsポート/KVM/カリフォルニアATT

Singularity Cloud は 2019 年に設立され、現在、建国記念日特別オファーとして...

初心者向けチュートリアル: VPS の余剰トラフィックの合理的な使用

VPS は最近非常に安価で、多くのウェブマスターが使用していると思います。しかし、毎月の過剰なトラフ...

hubiC: OVHが所有する2.5Tの無料クラウドストレージ

hubiCは無料のクラウドストレージサービスです。登録後、25GBの無料容量が付与されます。また、他...

Hop One Networks: 月額 24.95 ドル / E3-1230 / 16G メモリ / 240GB SSD + 1TB ハード ドライブ / 無制限トラフィック / 1Gbps ポート / フィラデルフィア HE

アメリカの業者であるHop One Networksは、主に独立したサーバーを提供しています。データ...

Host On A Rope: 月額 2.8 ドル / 1GB RAM / 25GB ストレージ / 無制限トラフィック / KVM / ドイツ / 英国

英国のホスティング プロバイダーである Host On A Rope (Linux Based Sy...

Time4VPS: €9.99/年/512MB RAM/20GB ストレージ/1 IP/500GB 帯域幅/OpenVZ

Time4VPS は、主に VPS を提供するリトアニアのホスティング会社です。LT2635073...

ABCloud: 259元/年/256MBメモリ/5GB SSDスペース/500GBトラフィック/1Gbps/KVM/香港HKT

ABCloud 新規加盟店 HKT NAT VM 新規オファー新規ユーザーは10%割引ABClou...

AlphaRacks: $5.88/年/128MB/8GB のスペース/500GB のトラフィック/OpenVZ/ロサンゼルス

AlphaRacks は何度も紹介されています。私は 1G OVZ を 2 つ所有していますが、安定...

MNX.io: 月額 6 ドル / 1 vCPU / 1G / 25G SSD / 1T / 1 IP / KVM

MNX.io は最近設立された米国のホスティング会社です。同社は、SSD ハード ドライブ、大容量...

【ブラックフライデー】HostHatch: $80/2年/4GBメモリ/2TB容量/6TBトラフィック/1Gbpsポート/KVM/シカゴ/オランダ/スウェーデン/イギリスなど

期間限定特別オファー、急いでご参加ください! !シカゴ CHI ストレージ: 2 CPU コア10 ...