[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 01/04 21:21 / Filesize : 324 KB / Number-of Response : 942
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

.htaccess質問コーナー Part5



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ヘッダそのものが存在しない、
どちらも同じだ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<324KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef