1 名前:Name_Not_Found [2006/09/09(土) 00:19:29 ID:HbgUKOrv] .htaccessの書き方・使い方などに関するスレです。 【参考サイト】 ・ ミケネコの htaccess リファレンス mikeneko.creator.club.ne.jp/ 〜lab/web/htaccess/ ・ メモランダム MultiX.jp multix.jp/html/memo/ ・ futomi's CGI Cafe - .htaccessの小技編 www.futomi.com/lecture/htaccess/ ・ .htaccess実践活用術 www.shtml.jp/htaccess/ 【Apacheドキュメント】 ・ Apache 1.3ドキュメント httpd.apache.org/docs/ ・ Apache 2.0ドキュメント httpd.apache.org/docs-2.0/ ・ Apache 2.1(alpha)ドキュメント httpd.apache.org/docs-2.1/ ・ Apache チュートリアル: .htaccess ファイル httpd.apache.org/docs-2.0/howto/htaccess.html ・ Apache チュートリアル:認証、承認、アクセス制御 httpd.apache.org/docs-2.0/howto/auth.html ・ Apache モジュール mod_access(アクセス制御) httpd.apache.org/docs-2.0/mod/mod_access.html ・ Apache モジュール mod_auth (認証) httpd.apache.org/docs-2.0/mod/mod_auth.html ・ Apache URL Rewriting Guide (Rewrite) japache.infoscience.co.jp/rewriteguide/ ・ Apache module mod_rewrite (Rewrite) japache.infoscience.co.jp/japanese_1_3_6/manual/mod/mod_rewrite.html
465 名前:Name_Not_Found mailto:sage [2006/12/20(水) 21:54:33 ID:???] >>463 煽るお前も一緒かそれ未満だろ慎め
466 名前:Name_Not_Found mailto:sage [2006/12/21(木) 15:48:21 ID:???] 日本人のみを許可した上で、特定の日本IPを弾いている状態から 中国、韓国を除いた海外IPを許可する記述はどのようになりますでしょうか? order allow,deny allow from .jp allow from .bbtec.net # .jp ではないが、Yahoo BB は許可しよう allow from .il24.net # .jp ではないが、Interlink は許可しよう
467 名前:Name_Not_Found mailto:sage [2006/12/21(木) 16:59:57 ID:???] >>466 弾きたいIPを調べる。 ちなみに韓国はスバラシイ事に逆引き出来ない。
468 名前:Name_Not_Found mailto:sage [2006/12/21(木) 20:06:17 ID:???] >>466 逆引きできないホストなどは規制回避できちゃうじゃん 漏れのブックマークやるからIPアドレスでの規制に変更汁 www.apnic.net/apnic-bin/ipv4-by-country.pl?country=jp ftp://ftp.apnic.net/pub/apnic/stats/apnic/delegated-apnic-latest ftp://ftp.arin.net/pub/stats/arin/delegated-arin-latest ja.wikipedia.org/wiki/%E3%83%88%E3%83%83%E3%83%97%E3%83%AC%E3%83%99%E3%83%AB%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E4%B8%80%E8%A6%A7 ja.wikipedia.org/wiki/%E5%9B%BD%E5%88%A5%E3%82%B3%E3%83%BC%E3%83%89%E3%83%88%E3%83%83%E3%83%97%E3%83%AC%E3%83%99%E3%83%AB%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3 www.42ch.net/~shutoff/ www.hakusan.tsg.ne.jp/tjkawa/lib/krfilter/index.jsp memorva.jp/internet/spam_virus/spam_ip_address_asia.php e-words.jp/w/RIPE-NCC.html
469 名前:Name_Not_Found mailto:sage [2006/12/21(木) 23:51:19 ID:???] >>467-468 ありがとうございます
470 名前:Name_Not_Found mailto:sage [2006/12/22(金) 00:09:00 ID:???] tv が今までずっとテレビだと思っていた。
471 名前:Name_Not_Found mailto:sage [2006/12/22(金) 20:06:13 ID:???] AAA(日付).htmlというファイルがあり、これを(日付).htmlに変更しました。 以前のAAA(日付).htmlにアクセスされた場合(日付).htmlへ転送するにはどう書けばいいのでしょうか? RewriteEngine on RewriteRule ^AAA([0-9A-Za-z]+)\.html$ $1\.html$ [R=301,L] RewriteEngine on RewriteRule ^AAA(.*)\.html$ $1\.html$ [R=301,L] RedirectMatch permanent ^AAA(.*)\.html$ example.com/$1.html 等をそれぞれ試してみましたがうまくいきません
472 名前:Name_Not_Found mailto:sage [2006/12/22(金) 20:42:34 ID:???] リライトルールの置き換える文字列は正規表現ではないですから、 . に\はいらないですし、最後の$も不要ですぅ。 リダイレクトマッチはリクエストのパス部分とマッチさせることになるですから いつでも/cgi-bin/foo/bar/jade/AAA〜\.htmlの全体にマッチするように 書くですぅ。
473 名前:471 mailto:sage [2006/12/22(金) 21:58:40 ID:???] ありがとうございます。アドバイスを参考に試してみましたができませんでした どこか間違ってますでしょうか・・・もちろんRewriteは使えるサーバです RedirectMatch permanent /foo/AAA([0-9A-Za-z]+)\.html$ example.com/foo/$1.html と RewriteEngine on RewriteRule ^AAA([0-9A-Za-z]+)\.html$ $1.html [R=301,L]
474 名前:Name_Not_Found mailto:sage [2006/12/22(金) 22:58:06 ID:???] >>473 リライトの方で古いURLにアクセスした時に、404にならず中身をちゃんと表示してるぅ? $1.htmlのところはhttp://から書くとうまくいくと思うわぁ?
475 名前:471 mailto:sage [2006/12/23(土) 00:07:35 ID:???] >古いURL AAA(日付).htmlというファイルを(日付).htmlに変更したので古い方のファイルはありません RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^AAA([0-9A-Za-z]+)\.html$ example.com/foo/$1.html [R=301,L] としましたがやはり無理でした。何か根本的に間違っているのかもしれません 今回はあきらめることにします。長々とお付き合いありがとうございました
476 名前:Name_Not_Found mailto:sage [2006/12/24(日) 18:06:27 ID:???] ブログにRSSを使用しているのですが、RSSリーダ等で読まれるのは構わないのですが、 「はてなRSS」にだけは登録されたくありません。はてなから読まれる事を防ぐ方法とかはありますでしょうか? r.hatena.ne.jp/ deny from hatena.ne.jp とかでは駄目でした。
477 名前:Name_Not_Found mailto:sage [2006/12/25(月) 02:03:01 ID:???] >>475 (もう見てないのかもしれないけど) -- /foo/.htaccess として設置 RewriteEngine on RewriteRule ^AAA([0-9]+)\.html$ /foo/$1.html [R=301,L] こんな感じで実際に運用してましたよ。127.0.0.1の鯖で>>475 の記述そのままも試したけど、 きちんとリダイレクトされました。 # AAA(\d+)\.html$ なファイルが存在せず、\d+\.htmlだけが存在する状態で。 301を食わされたUAは「permanent な移動先はココ」と言われたら忘れないようにするから、 UAを起動したまま.htaccessを書き換えてリロードしても変更が反映されないとか、 そういう問題だったのかも。 >>476 SetEnvIf User-Agent "Hatena RSS" hatena SetEnvIf Referer "^r\.hatena\.ne\.jp" hatena # ついで Order Deny,Allow Deny from env=hatena はてなRSSのアグリゲータのことはよく知りませんが。
478 名前:Name_Not_Found mailto:sage [2006/12/25(月) 13:34:26 ID:???] 初心者の質問ですが教えてください。 特定のホスト.***.ne.jpからのアクセスを全て禁止していますが そのホストの中のIP xxx.xxx.xxx.xxxだけはアクセスを許可したいのです。 order allow,deny allow from all deny from .***.ne.jp allow from xxx.xxx.xxx.xxx order allow,deny allow from all allow from xxx.xxx.xxx.xxx deny from .***.ne.jp この2パターンを試してみたのですが403に弾かれてしまうようです。 記述の仕方を教えてください。 よろしくお願いします。
479 名前:Name_Not_Found mailto:sage [2006/12/25(月) 18:09:28 ID:???] Order Deny,Allow Deny from .example.jp Allow from xxx.xxx.xxx.xxx
480 名前:478 mailto:sage [2006/12/25(月) 19:50:21 ID:???] >>479 Order Deny,Allow の順にかえたところ、今までアクセス拒否をしていたIPが アクセス可能になってしまいました。 ホストで一括に拒否してしまった相手は IPでアクセス許可することはできないのでしょうか?
481 名前:Name_Not_Found mailto:sage [2006/12/25(月) 20:14:17 ID:???] もうね、ちゃんと勉強しようよ。最低テンプレの参考サイト位読んだんだろうね? 初心者ってのは何の言い訳にもならんのよ。
482 名前:479 mailto:sage [2006/12/25(月) 20:25:25 ID:???] Order Deny,Allow の行だけ書き換えましょうとは書いてない。 >>480 の記述のまま orderだけ 変えたら全許可になる。 > できないのでしょうか? サンプルと説明参照。 httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order
483 名前:479 mailto:sage [2006/12/25(月) 20:26:13 ID:???] s/480/478/;
484 名前:Name_Not_Found mailto:sage [2006/12/25(月) 22:18:43 ID:???] s/allow from all\n//g;
485 名前:Name_Not_Found mailto:sage [2006/12/25(月) 23:05:25 ID:???] もう、AllowやDenyのfrom allは廃止しちまいやがれ、こんちくしょーっ!
486 名前:Name_Not_Found mailto:sage [2006/12/26(火) 00:16:17 ID:???] >>478 混在の時は、allow from all が不要 後は自分で試せ
487 名前:Name_Not_Found mailto:sage [2006/12/26(火) 08:13:39 ID:???] .htaccess と .htpasswd で特定のフォルダに認証をかけています。 Winではどのブラウザでも問題なく機能しているのですが、 Mac IE5.17 では401になってしまいます。 同じ人が同じMacでブラウザを Netscape7.02 に変えるとアクセスできるので IDとパスワードは合っていると思います。 AuthUserFile フルパス/.htpasswd AuthGroupFile /dev/null AuthName "MEMBER ROOM" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> どこか書き方で間違ってるところがあるでしょうか? (最後に改行も入れています)
488 名前:Name_Not_Found mailto:sage [2006/12/27(水) 09:56:50 ID:???] >>487 ><Files ~ "^.(htpasswd|htaccess)$"> >deny from all ></Files> これ消してみそ
489 名前:Name_Not_Found mailto:sage [2006/12/27(水) 19:13:48 ID:???] >>488 パスワード、.htaccessの設定(パスワードファイルのファイルシステム上の位置)を Webサーバ上に丸出しにさせる気ですかぁ〜?
490 名前:Name_Not_Found mailto:sage [2006/12/27(水) 22:05:46 ID:???] んなもん、普通に403が返るだろ
491 名前:Name_Not_Found mailto:sage [2006/12/27(水) 22:16:34 ID:???] 普通なのはApacheをビルドしたときに生成されるhttpd.conf(のテンプレート)に 拒否する設定が書いてあるからなのだわ。 httpd.confを1から書き直したのか、その部分を削り落としたような設定になってる サーバの存在を私が知っている以上、.htaccessにも <FilesMatch "^\.ht"> Order allow,deny Deny from all Satisfy All </FilesMatch> の設定は書き足しておきたいものなのだわ。
492 名前:Name_Not_Found mailto:sage [2006/12/27(水) 22:22:03 ID:???] >>487 MacIEなんてMSNでもサポートを終了したのだわ。 もしかしたらユーザ名やパスワードに英数字以外を使ってたりして、それが 問題になってるだけかもしれないけど、Safariにでも乗り換えさせてみてちょうだい。
493 名前:487 mailto:sage [2006/12/28(木) 07:32:34 ID:???] お借りしているサーバはデフォルトで .ht〜ファイルに403を出す設定のようなので >>488 を試してみました。が、やはり認証に失敗してしまいました。 ユーザ名・パスワードともに半角英数字しか使っていません。 自分でもいろいろぐぐってみたりしましたがどうにも解決できないので Mac の方には IE での認証は諦めていただくことにしようと思います。 (一応、ネスケでは認証を通過できるので) どうもありがとうございました。
494 名前:Name_Not_Found mailto:sage [2006/12/28(木) 09:14:52 ID:???] 無駄かもしれないけど、IE5.17の 初期設定→サイトパスワードから、該当サイトのIDとパスを削除 IEを再起動して再度アクセス でどうだろか?
495 名前:487 mailto:sage [2006/12/28(木) 10:59:50 ID:???] >>494 これから数日間出かける予定なので相手の方に確認ができませんが 帰宅したら連絡を取って試してもらってみます。 ありがとうございました。
496 名前:Name_Not_Found [2007/01/02(火) 01:31:39 ID:Cmz7ihvc] どっち
497 名前:Name_Not_Found mailto:sage [2007/01/02(火) 10:26:06 ID:???] 中国・韓国系のアクセスを規制したい時の記述は こんな感じで合ってますか? IPは検索して追加していますが、量が多いので略しています AddHandler cgi-script htaccess←.htaccessの存在を隠したい SetEnvIf User-Agent "Baiduspider" deny_user-agent←Baiduを拒否 SetEnvIf User-Agent "NaverBot" deny_user-agent←Naverを拒否 SetEnvIf REFERER "www.fuckiefuckie.com/" deny_site01←その他中華系サイトを拒否 SetEnvIf REFERER "fusker.wegotcandy.com/" deny_site01 SetEnvIf REFERER "www.palacemoon.com/" deny_site01 SetEnvIf REFERER "bbs.99bbs.com/" deny_site01 SetEnvIf REFERER "www.discuss.com.hk/" deny_site01 SetEnvIf REFERER "bbs1.uououo.com/" deny_site01 SetEnvIf REFERER "bbs.myuobbs.us/" deny_site01 order allow,deny allow from all deny from env=deny_user-agent←ここでUser-Agentの条件が合えば拒否? deny from env=deny_site01←ここでRefererの条件が合えば拒否? deny from 202.179.176.0/21←NaverのIP…のはず deny from 202.179.180.0/21 deny from 58.29.0.0/16←韓国の鯖 (略)
498 名前:Name_Not_Found mailto:sage [2007/01/02(火) 12:47:51 ID:???] そんな感じでDeny fromの条件のどれかに当てはまれば アクセスが拒否されるのだわ。 .htaccessを隠す方法は>>491 の方法を勧めておくのだわ。
499 名前:Name_Not_Found mailto:sage [2007/01/02(火) 13:45:07 ID:???] httpd.confで効いてればいいので、普通のHTMLなりTXTなりを .html とか .htest とかの "^\.ht.*$"なファイル名で置いてみて200が返るか403食らうか試せばいいんでないの? >>491 で触れてるようなデフォのhttpd.confで効いてるもんをなんで殺すんだか、みたいな鯖もあるし、 急に鯖屋が設定変える可能性も否定はできないけど。 >>497 とくに deny 対象の UA/Referer を区別する必要がないのなら同じ変数名にしとけば1行で済むよ。 どっちも deny_access という名前にしておいて Deny from env=deny_access とか。 一旦 Order allow,deny(基本全蹴り) させといて Allow from all で全許可して Deny する解説サイトが多いけど、 いっそ Order deny,allow(基本全許可) で Allow を一切書かせないような解説方針にならんもんかな。
500 名前:Name_Not_Found mailto:sage [2007/01/02(火) 22:28:20 ID:???] >>498-499 遅くなりましたが、ありがとうございました
501 名前:Name_Not_Found mailto:sage [2007/01/04(木) 22:03:14 ID:???] Javascript無効の訪問者をhtaccessで弾く事って出来ます? その場合はどんな記述になるんでしょうか
502 名前:Name_Not_Found mailto:sage [2007/01/04(木) 22:40:51 ID:???] できない事もないですが、クライアントサイドの事はクライアントサイドで 完結しやがれですぅ。
503 名前:Name_Not_Found mailto:sage [2007/01/04(木) 23:18:42 ID:???] わかりました。どうもです
504 名前:Name_Not_Found mailto:sage [2007/01/09(火) 12:49:23 ID:???] SetEnvIf User-Agent "AAA" deny_ua SetEnvIf User-Agent "BBB" deny_ua SetEnvIf User-Agent "CCC" deny_ua order allow,deny allow from all deny from env=deny_ua 例えば上記の場合だと、User-Agentが「AAA」か「BBB」か「CCC」を含む場合に拒否しますが、 これを「AAA」と「CCC」の両方を含む場合に拒否する というふうにしたいのですがどのようにすればいいでしょう? 色々試してみてはいるのですが正規表現が理解できていないのか上手くいきません。 よろしくお願いします。
505 名前:Name_Not_Found mailto:sage [2007/01/09(火) 13:54:31 ID:???] AAA.*CCC と CCC.*AAA にでもするですぅ
506 名前:504 mailto:sage [2007/01/09(火) 14:50:42 ID:???] >>505 出来ました。ありがとうございます!
507 名前:Name_Not_Found mailto:sage [2007/01/09(火) 18:35:52 ID:???] SetEnvIf User-Agent "GetHTMLW|GetYou!|webox" deny_ua deny from env=deny_ua 上のように設定してるんですが、weboxだけ弾かれずに全てダウンロードされてしまいます。あがいても無駄でしょうか、、
508 名前:Name_Not_Found mailto:sage [2007/01/09(火) 19:05:44 ID:???] WeBoXはWeBoXよぉ? user agent 該当ソフト名 でググればアクセス解析のページが引っかかるから そこから正しいものをピックアップしなさぁい。 特定バージョンは UserAgent を送ってくるみたいよぉ?
509 名前:Name_Not_Found mailto:sage [2007/01/09(火) 21:07:31 ID:???] >>508 SetEnvIf User-Agent "GetHTMLW|GetYou!|WeBoX" deny_ua deny from env=deny_ua でやってみたんですが素通りされてしまいました。UA送ってこないバージョンのようです。 ありがとうございました。
510 名前:Name_Not_Found mailto:sage [2007/01/11(木) 15:19:09 ID:???] YahooBBを愛知限定で規制したいのですが、どう書けばいいんでしょうか
511 名前:Name_Not_Found mailto:sage [2007/01/11(木) 16:55:46 ID:???] >>510 deny from softbank|愛知のIPを調べる|.bbtec.net
512 名前:Name_Not_Found mailto:sage [2007/01/11(木) 17:01:27 ID:???] YahooBBって滅多にIPアドレスが変わらないから、規制対象はとりあえず1つにして すり抜けられたらいたちごっこをするか/24で規制するかしていけばいいと思う。
513 名前:Name_Not_Found mailto:sage [2007/01/11(木) 22:27:17 ID:???] ありがとうございました。そうします
514 名前:Name_Not_Found mailto:sage [2007/01/12(金) 13:05:39 ID:???] > pc10.2ch.net/test/read.cgi/hp/1167026480/694 <FilesMatch "\.(js|css)$"> SetEnvIf Referer "^$" no_ref # または、許可するHTML全てを表す正規表現なり前方一致させたい部分で !no_ref # SetEnvIf Referer "^http(略" !no_ref Order Deny,Allow Deny from env=no_ref </FilesMatch> リファラ吐かない端末で見るとアレな事態になるし、 CSSやJSの直叩きってそんなに気にするようなもんかなあ。
515 名前:Name_Not_Found mailto:sage [2007/01/12(金) 13:33:32 ID:???] 書き忘れてた。 JSやCSSを直で叩こうとする人らは、普通に閲覧してキャッシュフォルダを開けば済むことを 知ってる確率が高いかもしれないよ。
516 名前:Name_Not_Found mailto:sage [2007/01/12(金) 13:40:57 ID:???] URLを直接入力するのではなく、ブックマークレットを介してでジャンプすると ちゃんとRefererを付けてくれるですぅ。
517 名前:Name_Not_Found mailto:sage [2007/01/12(金) 14:46:43 ID:???] 初心者スレの694です。 あちらで誘導してくれた方と同じ方なんですね、失礼しました^^; >>514 を参考に調べながらやってみたのですが、 やはりhtmlからも参照されなくなってしまうようです。(確認はWin/Apache2.0.58) >>514 さんの記述で、htmlからは参照できてるのですよね・・ レンタル鯖にも相談していたのですが、うちでは無理だとの返事でした。 たしかに>>515 のようなこともありそうですし、今回は見送り 機会を見てまた勉強してみようかと・・・すみません。
518 名前:Name_Not_Found mailto:sage [2007/01/14(日) 01:04:21 ID:???] SetEnvIf REFERER "example.com/" refok Order Deny,Allow Deny from all Allow from env=refok 現在、上記のようにしてトップページからでないと サイト内のコンテンツを見られないように制限しています。 そこへ携帯電話用BBS(example.com/mobile/ )を設置したいのですが、 調べてみたところ携帯電話はRefererを送らないようです・・・ そこで携帯からのアクセスのみIP判別し全て許可としたいのですが、 Allow from env=refok 以下に許可したいIPを記述するだけでOKなのでしょうか?
519 名前:Name_Not_Found mailto:sage [2007/01/14(日) 01:06:45 ID:???] このような感じです。 SetEnvIf REFERER "example.com/" refok Order Deny,Allow Deny from all Allow from env=refok #NTTDoCoMo Allow from 210.153.84.0/24 Allow from 210.153.84.0/24 Allow from 210.136.161.0/24 Allow from 210.153.87.0/24 (以下続く)
520 名前:Name_Not_Found mailto:sage [2007/01/14(日) 01:15:15 ID:???] OKよぉ?
521 名前:Name_Not_Found mailto:sage [2007/01/14(日) 23:42:44 ID:???] ドコモの場合はFullブラウザも追加しないと
522 名前:Name_Not_Found [2007/01/15(月) 03:02:58 ID:PNqbmNiw] さっぱりわからん! 言われているように自分のを拒否設定にしても アクセスできちまう。 あぱっち?なんですか? ぱぶりっく〜ってなんですか? index.htmlが置いてあるところに 置けば良いのですか? わからん。 Baiduspider は来てないみたいだけども yodaoはアクセスしているみたいだ。 SetEnvIf User-Agent "Baiduspider" dame1 SetEnvIf User-Agent "yodao" dame2 order allow,deny allow from all deny from env=dame1 deny from env=dame2 これじゃだめなの?
523 名前:Name_Not_Found mailto:sage [2007/01/15(月) 03:33:01 ID:???] >>522 > あぱっち?なんですか? 不眠不休でHTTPリクエストを受け付けて淡々と返事してくれる偉い人。 黙々と仕事してそうに見えて error_log にいろいろと本音を書き残してるので侮れない。 ざっくり yodao とやらを調べたけど、UA文字列が YodaoBot/1.0 (www.yodao.com/help/webmaster/spider/; ) こういうものだったら、その記述でdame2も有効。"YodaoBot/1.0"としか名乗らないのが もしいるのなら「全部小文字の yodao」じゃないのでdame2に当てはまらない。 # 類似品の SetEnvIfNoCase という面倒見のいい人に頼むとどうにかしてくれる。 その記述でいけるはずだけど、 > 言われているように自分のを拒否設定にしてもアクセスできちまう。 これ見る限り、その部分以外に *何か* 楽しい記述を書いてたりしない?
524 名前:522 [2007/01/15(月) 11:47:40 ID:PNqbmNiw] 523さん丁寧にありがとう! 大文字っていうところには全く気がつかずでしたわ。 yodaoに関してはアクセス解析っていうので見てみると ユーザーエージェントっていうところに YodaoBot/1.0 (www.yodao.com/help/webmaster/spider/; って書いてありました。 でもホスト名っていうところではyodaoがどれなのかさっぱり わからないけど。。。 教えて頂いた通り SetEnvIf User-Agent "Baiduspider" dame1 SetEnvIf User-Agent "yodao" dame2 SetEnvIf User-Agent "YodaoBot/1.0" dame3 order allow,deny allow from all deny from env=dame1 deny from env=dame2 deny from env=dame3 というふうに書き換えてみました。 えっと、これ以外には何も書いてないです。 自分自身を弾けないのは、自分のIPもしくは えーじぇんと?の記述が間違っていたのでしょう。 これで様子見てみます! ありがとう!
525 名前:Name_Not_Found mailto:sage [2007/01/15(月) 13:22:25 ID:???] >>524 あまり丁寧じゃない523です。 そのUA+その記述だと必ずdame2とdame3の両方に当てはまるので>>522 のままでもいいけど それで様子見て「まだ来るよ!」というときはまた来てください。 個人的に、その場合なら Order Deny,Allow して Allow from all の行を書かない。 > えっと、これ以外には何も書いてないです。 > 自分自身を弾けないのは、自分のIPもしくはえーじぇんと?の記述が 失礼しました。 たぶん、UAでdenyしようとして SetEnvIf User-Agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" ua_ban …とカッコをそのまま書いた、なんて事例じゃないかと。
526 名前:Name_Not_Found mailto:sage [2007/01/15(月) 16:04:02 ID:???] 大文字小文字の差でかすりもしないときは、SetEnvIfではなく SetEnvIfNoCaseを使うと楽ですぅ。
527 名前:519 mailto:sage [2007/01/15(月) 22:21:48 ID:???] >>520 有難うございます。早速動作確認してみます。 >>521 www.nttdocomo.co.jp/service/imode/make/content/ip/about/index.html#ip ここでは 210.153.87.0/24 となっているのですが、 他にも割り当てがあるのですか?
528 名前:Name_Not_Found [2007/01/16(火) 14:37:26 ID:XwwKfw2N] デフォルトファイルを「index.cgi」に設定したいのですがうまくいきません。 DirectoryIndex index.cgi index.html とだけ記述した「.htaccess」ファイルを同じディレクトリ内に設置すると 「index.cgi」も「index.html」もサーバーエラー(500)になってしまいます。 (htaccessファイルがない状態だとどちらも正常に動作。) 全く行き詰ってしまったのでご助言お願いします。 なお、htaccessファイルの最終行は改行で終わらせ、アスキーモードで転送しています。 また別ディレクトリにhtaccessを置いていますがBasic認証(正常に動作)の記述のみで 特別制限を加える記述はしていません。
529 名前:Name_Not_Found mailto:sage [2007/01/16(火) 15:04:03 ID:???] >>528 500エラーは自分のミス。 index.cgiをデフォにしたいならindex.htmlうpしなければいいんでわ。
530 名前:Name_Not_Found [2007/01/16(火) 15:14:54 ID:XwwKfw2N] >>529 レスありがとうございます。 index.htmlを削除して試してみましたが、500エラーが出ました。 (htaccessファイルがない状態だと404ではなくindex.cgiが呼び出されました。) サーバー側の問題が高い気がしてきましたので一度確認してみようと思います。
531 名前:Name_Not_Found mailto:sage [2007/01/16(火) 15:19:48 ID:???] いやだからね、htaccessいらないんじゃないの?
532 名前:Name_Not_Found mailto:sage [2007/01/16(火) 15:42:46 ID:???] >>531 SEO対策等を考えると単純にindex.htmlを削除するのはできれば避けたかったのですが htaccessなしで検討してみます。 ありがとうございました。
533 名前:Name_Not_Found mailto:sage [2007/01/16(火) 16:05:17 ID:???] >>532 諦めず設定見直せ
534 名前:Name_Not_Found mailto:sage [2007/01/16(火) 16:26:52 ID:???] DirectoryIndexはAllowOverrideにIndexesが指定されてないと使えないですぅ。 使えないときは500エラーになるですっ。
535 名前:Name_Not_Found mailto:sage [2007/01/17(水) 08:35:49 ID:???] --------保存版------------------------------------------------ SetEnvIf で設定できる項目 SetEnvIf を SetEnvIfNoCaseにすると、大文字小文字の区別をしないで処理する ●Request_URI URL のスキームとホストの後の部分 ●Remote_Addr リクエストを行なっているクライアントの IP アドレス ●Request_Method 使用されているメソッド名 ( GET, POST など ) ●Remote_Host リクエストを行なっているクライアントのホスト名 ( もしあれば ) ●Request_Protocol リクエストが行なわれたプロトコルの名前とバージョン ( 例えば、"HTTP/0.9", "HTTP/1.1" など。) ●Server_Addr リクエストを受け取ったサーバの IP アドレス ( 2.0.43 以降のみ) ●User-Agent リクエストを行っているユーザーエージェント ( ログには combined を指定 ) pc10.2ch.net/test/read.cgi/hp/1051605457/252-
536 名前:Name_Not_Found mailto:sage [2007/01/17(水) 08:36:41 ID:???] なので、.htaccessに設定するなら ● 202.179.180.*** なら SetEnvIf Remote_Addr 202.179.180. deny_user order allow,deny allow from all deny from env=deny_user ●colocation.chipsat.com.br が deny from colocation.chipsat.com.br で 拒否出来ない件なら(大文字も考慮して) SetEnvIfNoCase Remote_Host "nodomaintransfer" deny_user SetEnvIfNoCase Remote_Host "colocation.chipsat.com.br" deny_user order allow,deny allow from all deny from env=deny_user pc10.2ch.net/test/read.cgi/hp/1051605457/252-
537 名前:Name_Not_Found mailto:sage [2007/01/17(水) 16:46:01 ID:???] IPアドレスは送信元アドレスを書き換えてしまうクズゲートウェイを介してなければ ほぼ正しいIPアドレスが入ってることが保障されてるですぅ。 ドットをエスケープする事を忘れるくらいならAllowやDenyに直接IPアドレスを 設定しやがれですっ。 REMOTE_HOSTはサーバの設定でHostnameLookups Offにされていたら 何も値が入ってこないから使えないですぅ。 この設定を覆してREMOTE_HOSTに値を入れるには、実はAllowやDenyに ホスト名を設定して、ホスト名のチェックを受けるようにしてやればよいですぅ。 とにかく、まとめなどと称して誤解を招くようなものを広めるなですっ。
538 名前:Name_Not_Found mailto:sage [2007/01/18(木) 03:29:59 ID:???] >>535-536 他スレから去年のゴミを持って来ないでください。 保存版と称して regex のとこに Allow|Deny に書く表記をする人こそ 本気で保存したほうがよさそうなもの。 httpd.apache.org/docs/2.2/mod/mod_setenvif.html#setenvif おまけ。 www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3
539 名前:Name_Not_Found mailto:sage [2007/01/18(木) 10:22:12 ID:???] >>537 > この設定を覆してREMOTE_HOSTに値を入れるには、実はAllowやDenyに > ホスト名を設定して、ホスト名のチェックを受けるようにしてやればよいですぅ。 それ間違いだよ。 Apache 2.2.3 でやったけど、半分ぐらいの確率でただしく動作しない。(たぶん、Keep-Alive中の2回目以降のアクセスの時のみ動作) だから、POSTの時のみ逆引きすればいいのに、setenvif のために全部逆引きするはめに(´・ω・`)
540 名前:Name_Not_Found [2007/01/18(木) 10:39:52 ID:jtnGZfDC] 質問です。 トラックバックスパムを送信してくるボットを規制しようとしています。 以前来ていたボットはIPアドレスはランダムでしたがいつもUser-Agentが固定だったので 以下の記述で規制できました。 <Files index.php> <limit POST> SetEnvIf User-Agent "Mozilla/4\.0 \(compatible; MSIE 6\.0; Windows NT 5\.1\)" trackers Order Allow,Deny Allow from all Deny from env=trackers </limit> </Files> それから数ヶ月後、今回は新たにUser-Agentが「Mozilla/5.0」という名前で来ています。 ところが、 SetEnvIf User-Agent "Mozilla/5\.0" trackers というのを追加すると、 Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1) Gecko/20061010 Firefox/2.0 などのUser-Agentを持つFirefoxが規制されてしまうようです。 「Mozilla/5.0」のみを規制し、 「Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1) Gecko/20061010 Firefox/2.0」は 規制しないようにするにはどう書けばいいのでしょうか?
541 名前:Name_Not_Found mailto:sage [2007/01/18(木) 10:45:27 ID:???] >>540 最初に ^ 最後に $
542 名前:Name_Not_Found mailto:sage [2007/01/18(木) 17:58:39 ID:???] >>539 半分くらいの確率とかじゃないですぅ。 Allow from .jp Deny from .kr みたいに必ず制限のチェックを受けてヒットするようになってないとだめですぅ。 それから、あまりにも遅いチビチビDNSサーバに問い合わせてると、 タイムアウトしやがるですっ。
543 名前:539 mailto:sage [2007/01/18(木) 18:14:25 ID:???] >>542 以前、30分以上かけて実験したことがあるんだけど、 Allow や Deny ディレクティブで Host名の指定をしても、 かなりの確率で SetEnvIfNoCase Remote_Host で値が取得できないことがある。 -------------------------------------------------------------- SetEnvIfNoCase Remote_Host "\.jp$" Deny <Limit POST> <Order Deny,Allow> Deny from YahooBB123123123.bbtec.net # 逆引きさせるためのダミー設定 Deny from env=Deny Allow from all </Order> </Limit> -------------------------------------------------------------- 確か、こんな感じにして jp ドメインのリモホで100回ぐらい Post すると、半分ぐらいが弾かれた。 Keep-Alive の1回目は、アクセスできてそれ以降はアクセスできない、そして Alive の期限が切れたら1回だけアクセスできるんだと思った。 ちなみに、deny from で規制すれば、100回やっても100回アクセスできないので、DNSが遅いことが原因とは思えない。
544 名前:539 mailto:sage [2007/01/18(木) 18:43:01 ID:???] 上の例は文法間違ってました。 書き直します。
545 名前:539 mailto:sage [2007/01/18(木) 18:53:01 ID:???] 書き直しました。 --------------------------------------- SetEnvIfNoCase Remote_Host "\.jp$" Deny SetEnvIfNoCase Remote_Host "\.net$" Deny Order Allow,Deny Allow from all # 逆引きさせるためのダミー Deny from YahooBB123123123123.bbtec.net Deny from env=Deny --------------------------------------- です。 今 Apache 2.2.3 (worker) on Fedora Core 4 で検証してみたところ、Keep-Alive は 5秒になっているのですが、 最初のアクセスは必ず正常に行えて、5秒以内にアクセスすると確実に 403 Forbidden に。 アクセスの間隔を 6秒以上にしたら、確実に全てのリクエストが 200 OK になりました。 自分の環境だけかもしれないので、お時間があれば、検証していただけると助かります。
546 名前:Name_Not_Found mailto:sage [2007/01/18(木) 22:08:53 ID:???] .htaccessじゃないですけど、/etc/resolv.conf に options timeout:20 とでも設定してみやがれですっ。
547 名前:539 mailto:sage [2007/01/18(木) 22:15:33 ID:???] >>546 試してみましたが、症状は変わりませんでした。 1回目のアクセスの場合、SetEnvIf では Allow や Deny に リモートホストを指定することによる 逆引き情報は利用できないようです。 全てのリクエストを逆引きするように設定すれば利用できますが…。
548 名前:539 mailto:sage [2007/01/18(木) 22:20:35 ID:???] --------------------------------------- Order Allow,Deny Allow from all # 逆引きさせるためのダミー Deny from .jp Deny from .net Deny from env=Deny --------------------------------------- もう一度やってみましたが、これだと確実に遮断され、>>545 だと Keep-Alive で既に確率しているコネクションしかリモートホスト情報を SetEnvIf で利用できないので、 たぶんそういう仕様なのかなーと思います。 今度暇があったら他の環境でもいろいろ検証してみます。
549 名前:Name_Not_Found mailto:sage [2007/01/19(金) 06:08:25 ID:???] worker版とprefork版まで作って試してみましたですけど、よーく考えれば、 環境変数を設定するSetEnvIfが、環境変数を見て動作を変える AllowやDenyが設定した環境変数を参照できないのは当然のことですぅ。 Persistent Connectionでソケットが再利用される時は、当然REMOTE_HOSTも 同じわけですから、前回のリクエストのAllowやDenyの時に逆引きして キャッシュされてるものをそのまま今回のリクエストのREMOTE_HOSTに 使われる(ようになってるはず)ですぅ。 その結果1回目のリクエストでは(略)ソケットを再利用した2回目以降のリクエストは(r って事になってしまうですぅ。 AllowやDenyにあえてドメインを指定するのは、逆引きをしない設定になってるサーバで CGIに環境変数REMOTE_HOSTを渡す事くらいにしか役に立たねぇって事だったですっ。
550 名前:Name_Not_Found mailto:sage [2007/01/19(金) 08:18:15 ID:???] >>545 他板のApacheスレでやるべきもんだろーな、と思いながら試しましたよと。 まともにapacheやらnamedが動いてたPCは押し入れでホコリかぶってるので Apache/2.2.3 on Win2000、名前解決がhostsというデタラメな環境。 ・192.168.1.24 chinkopad.local chinkopad ・KeepAlive On ・KeepAliveTimeout 5 ・HostnameLookups Off SetEnvIf Remote_Host "^chinkopad$" ban # 引けなかったときはDenyされない予定。 Order Deny,Allow Deny from env=ban # 引けたときもあとからAllowするやさしさ。 Allow from chinkopad GET /env.cgi(ファイル名見ただけで動作が想像できる、あれ) 初回:200。$ENV{'REMOTE_HOST'}に'chinkopad'が入ってる。 5秒未満待ちでリロード:403。Denyだけ効いてAllowが効かないのがなぜかは面倒なので考えない。 5秒超待ってリロード:200。$ENV{'REMOTE_HOST'}に(ry KeepAliveTimeoutの値を変えたら、200/403のどちらを吐くかの境目もそれに合わせて変化。 >>549 わざわざ検証もして、上で自分が書いたことを訂正する内容をせっかく書いてるのに それが「当然のことですぅ」「って事だったですっ」なんてことでは損するぞ。
551 名前:Name_Not_Found mailto:sage [2007/01/19(金) 10:40:55 ID:???] 串経由のアクセス弾きたいんだけどそう言う事って出来る?
552 名前:Name_Not_Found mailto:sage [2007/01/19(金) 13:56:18 ID:???] deny from 串
553 名前:Name_Not_Found mailto:sage [2007/01/19(金) 17:47:38 ID:???] SetEnvIfでRemote_Hostにマッチさせるなんて事は全くやらないから 処理される順序も知らなかったですっ。
554 名前:539 mailto:sage [2007/01/19(金) 20:36:15 ID:???] >>549 わざわざ検証していただきありがとうございます。 > よーく考えれば、 > 環境変数を設定するSetEnvIfが、環境変数を見て動作を変える > AllowやDenyが設定した環境変数を参照できないのは当然のことですぅ。 確かにそう考えるのが自然ですね。 SetEnvIf での環境変数のセットの後に Order が解釈されるって流れで…。 >>550 検証ありがとうございます。 > 5秒未満待ちでリロード:403。Denyだけ効いてAllowが効かないのがなぜかは面倒なので考えない。 なんでだろう。 SetEnvIf だと逆引きできるけど、Deny や Allow では "chinkopad" が引けてない? ちなみに、これと似たような話で SetEnv ディレクティブの評価が SetEnvIf とか Order とかより後なので、 アクセス制御には使えないってことがあります。 デフォルト true でフラグを倒すような制御をしたけりゃ、100%真になる条件を指定するっていう美しくない方法使うしかないですね(´・ω・`) httpd.apache.org/docs/2.2/mod/mod_env.html#setenv
555 名前:Name_Not_Found mailto:sage [2007/01/19(金) 20:41:13 ID:???] Apacheの1.3ならある程度の順序の設定はできたですぅ。
556 名前:539 mailto:sage [2007/01/19(金) 20:42:34 ID:???] >>555 そうなんですぅーか…。 1.3系にできて 2.2系にできないことってあったんですね(´・ω・`)
557 名前:Name_Not_Found mailto:sage [2007/01/19(金) 21:03:41 ID:???] 2.0以降はモジュール毎に優先順位がついて、その順位を元に順序が決められるですぅ。
558 名前:539 mailto:sage [2007/01/19(金) 21:15:30 ID:???] >>557 なるほどです
559 名前:Name_Not_Found mailto:sage [2007/01/19(金) 22:25:33 ID:???] はーいー
560 名前:Name_Not_Found mailto:sage [2007/01/19(金) 23:47:16 ID:???] ,__ ,ィ//´ ,ヾ く, { i{リノノ))i} __ タ○ちゃんじゃねぇですっ! iメ!#゚听ノリ} _r‐v/´ ノ,, ァj}卯v´ゞ'ー ' {彡ソヽ_/ゝ,ミi ゙'=く / __ ,ノ〉'
561 名前:Name_Not_Found mailto:sage [2007/01/21(日) 22:45:16 ID:???] UAを名乗っていない人を弾く方法教えて下さい。
562 名前:Name_Not_Found mailto:sage [2007/01/22(月) 00:34:17 ID:???] 一文字でもあれば許可する方が楽よぉ?
563 名前:Name_Not_Found mailto:sage [2007/01/22(月) 01:55:12 ID:???] SetEnvIf User-Agent "null|unknown" deny_ua deny from env=deny_ua
564 名前:Name_Not_Found mailto:sage [2007/01/22(月) 02:13:40 ID:???] UAがカラだと null、変換テーブル内に該当するものが見当たらないときは unknown と 表示するアク解サービスがあるんだろうけど、さ。
565 名前:Name_Not_Found mailto:sage [2007/01/22(月) 02:32:32 ID:???] User-Agentヘッダは存在するが空白、User-Agentヘッダそのものが存在しない、 どちらも同じだ。