08/03/20 23:59:02
【Apacheドキュメント】
・ Apache チュートリアル: .htaccess ファイル
URLリンク(httpd.apache.org)
・ Apache 2.2ドキュメント
URLリンク(httpd.apache.org)
・ Apache 2.0ドキュメント
URLリンク(httpd.apache.org)
・ Apache 1.3ドキュメント
URLリンク(httpd.apache.org)
・ Apache Trunkドキュメント
URLリンク(httpd.apache.org)
・ Apache チュートリアル:認証、承認、アクセス制御
URLリンク(httpd.apache.org)
・ Apache モジュール mod_access(アクセス制御)
URLリンク(httpd.apache.org)
・ Apache モジュール mod_auth (認証)
URLリンク(httpd.apache.org)
・ Apache URL Rewriting Guide (Rewrite)
URLリンク(japache.infoscience.co.jp)
・ Apache module mod_rewrite (Rewrite)
URLリンク(japache.infoscience.co.jp)
3:Name_Not_Found
08/03/20 23:59:33
【参考サイト】
・ ミケネコの htaccess リファレンス
URLリンク(mikeneko.creator.club.ne.jp)
・ メモランダム MultiX.jp
URLリンク(multix.jp)
・ futomi's CGI Cafe - .htaccessの小技編
URLリンク(www.futomi.com)
・ .htaccess実践活用術
URLリンク(www.shtml.jp)
【例示用ドメインについて】
質問/回答時の例として使うドメインは、例示用として用意されている
example.com、example.net、example.org、example.jpなどを使いましょう。
これに好きなサブドメインをつけて説明するのは可。(例: hoge.example.com)
4:Name_Not_Found
08/03/21 00:01:26
当分スレなしでもいいかと思ったんだけどなんとなく立ててみた。
5:Name_Not_Found
08/03/21 03:31:17
>>4
これはありがたいです。
初心者スレでも伺ったのですが、固体識別番号での
アクセス制限について聞きたい事があります‥
特定の携帯電話(主にDoCoMo)だけを入室可にしたいのです。
Basic認証だと入室の際、手間が掛かるので固体識別番号で
振り分けが出来ればなと思ってます。
しかし、そのままicc又はserを記述しても出来ませんでした。
やはり公式サイトでしか出来ないのでしょうか?
6:Name_Not_Found
08/03/21 09:18:09
>>5
RewriteCond %{HTTP_USER_AGENT} ser[0-9a-zA-Z][0-9a-zA-Z]
みたいなのでできね?
7:Name_Not_Found
08/03/21 16:21:32
>>6
レスありがとうございます
帰り次第速攻で試してみます
8:Name_Not_Found
08/03/21 20:31:58
携帯はいつでも識別番号吐きながら GET や POST してるわけじゃないですよ。
9:Name_Not_Found
08/03/21 21:04:48
>>8
知ってる。
だから>>6は、utn属性でpost/getしてきた時だけに有効。
10:5
08/03/22 00:51:07
度々すみません
私の固体識別番号が
serxxxxxxxxxxxxxxx(iccの場合なら、iccyyyyyyyyyyyyyyyyyyyy)だった場合、
私のみを入室可能にするにはどのように記述すればいいのですか?
.htaccessは無知でして、質問ばかりすいません。
お暇であれば回答お願いします。
11:Name_Not_Found
08/03/22 09:07:57
>>10
マジレスしてやろう。
ドコモの勝手サイトの場合は、端末IDを取得する場合は、必ず警告が出る。
mod_rewriteのURL書き換えで対応する場合は、サイトの入り口だけでなく
全ページで端末IDを確認するとなると、ページ遷移のたびに警告が出るって
ことだけど、それでも良いのかえ?
現実的には、mixiがやってるように、サイト入り口で端末IDで認証して、そ
れ以降は、セッションで持ち回るしかないんじゃね?
12:Name_Not_Found
08/03/22 18:24:26
A.html → B.html
B のページに行くとき、A.html経由じゃなきゃ行けないようにしたいです。
つまり、リファラが A のアドレス以外は全てアクセス拒否にしたいのですが、
このとき B.html があるディレクトリ内の .htaccessには
何て書けば良いのでしょうか
お願いします。
13:Name_Not_Found
08/03/22 20:27:08
age
14:Name_Not_Found
08/03/22 21:13:40 a3FnqSDt
>>11
レスありがとうございます。
毎ページで警告となると考えものになりますね‥
しかし一度試したい気にもなります。
もしよろしければ、教えて頂きたいです。
そこから工夫してみます。
ちなみに
簡単ログインプログラム(サンプル?)は持ってはいるんですが、
sendmailという未知なものが必要で避けました‥
15:12
08/03/22 21:37:17
自己解決しました
16:Name_Not_Found
08/03/23 00:13:27
>>1おつです 早速使わせていただきますね
サイトを表示した際(特定の形式のファイルを)キャッシュしないようにしたいのですが、
<Files ~ "\.(gif|xml)$">
Header set Pragma no-cache
Header set Cache-Control no-cache
</Files>
これですとOpera使用の場合にキャッシュしてしまいます
グーグル先生に聞いてみたのですが同様の質問は幾つか見つかるのですが回答が見つかりませんでした
Operaのキャッシュの挙動が特殊で、構築側での制御が無理なのでしょうか?
17:Name_Not_Found
08/03/23 00:55:22
>>14
User-Agentに含まれるものはSetEnvIf User-Agent
X-UP-SUBNOに含まれるものはSetEnvIf X-UP-SUBNOを使って
後はいつも通りのOrder allow,denyとAllow from env=よぉ?
>>16
mod_headerはmod_rewrite以上にインストールされている確率が低いわぁ?
キャッシュ期間の設定はmod_headerより先にやっぱりインストールされている確率が低い
mod_expiresを使うべきよぉ?
ExpiresActive On
ExpiresByType image/gif A0
ExpiresByType text/xml A0
mod_headerはHeader set Cache-Controlの方をno-cacheではなく
max-age=0にした方がよさそうよぉ?
あと他にもHeader set Expires "Sat, 22 Mar 2008 15:55:00 GMT"も
試してみる必要がありそうよぉ。
18:Name_Not_Found
08/03/23 01:21:15
URLリンク(jp.opera.com)
> You can use META tags to prevent Opera from caching pages, for example:
> <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
> <META HTTP-EQUIV="Expires" CONTENT="-1">
> Opera will follow those meta tags, but using the HTTP headers is the preferred way to do this.
Expires: -1 ねぇ。
19:Name_Not_Found
08/03/23 11:47:15
>>12
ノートン大先生使っている場合、リファラが出ないことが多くない?
20:Name_Not_Found
08/03/24 16:22:44
特定のパラメータをもったURIをリダイレクトしようとしているのですが
リダイレクト先にパラメータを引き継いでしまいます。
パラメータを引き継がない方法はありますか?
【現在の設定】
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/home/hoge\.cgi$
RewriteCond %{QUERY_STRING} ^id=3$
RewriteRule ^.*$ URLリンク(hogehoge) [R]
21:Name_Not_Found
08/03/25 03:28:28
RewriteRule ^.*$ URLリンク(hogehoge) [R]
と?で終わらせると消えるってコラムに書いてあるわぁ?
22:Name_Not_Found
08/03/25 07:26:13
クエリーは、[QSA]を指定しなければ、消えるんじゃないのかね?
23:Name_Not_Found
08/03/25 13:17:47
リダイレクト先にも、消えずに、くっついて、来ます、よ。
つーか、試せばわかる話で。
RewriteEngine on
RewriteCond %{QUERY_STRING} ^q=%E7%9B%86%E3%81%AE%E7%AA%AA$
RewriteRule .* URLリンク(www.google.co.jp) [R,NE]
24:Name_Not_Found
08/03/25 16:28:25
乳酸菌の摂り過ぎで脳ミソが腐ってしまってやがるですぅとか書こうと思ったら
ドキュメントにマジで最後を?で終わらせると消せるって書いてありやがったですっ!
ちょっと前までSetEnvで茶を濁してばかりだったのにいつの間にこんな細かいところまで
読んでやがったですかぁ!
>>22
QSAはクエリー付きのURLに置換した後さらに元のクエリーをくっつけるっぽいですぅ。
25:Name_Not_Found
08/03/25 16:40:01 QZVJ63A1
スレリンク(hp板:832番)
832 Name_Not_Found New! 2008/03/25(火) 15:43:15 ID:QZVJ63A1
TOPページ以外のページからサイトに来た場合に
強制的にTOPページに移動するようにするにはどうすればいいのでしょうか
34 Name_Not_Found sage New! 2008/03/25(火) 16:30:53 ID:???
>>832
ビルダーではちょっと厳しいので、このあたりへ行った方が早いと思います。
.htaccess質問コーナー Part7
スレリンク(hp板)
ということなのでよろしくお願いします
26:16
08/03/25 21:00:10
>>17,18
レスサンクスです 調べたところサーバにmod_headerとmod_rewriteは入っていました(mod_expiresはなし)
期間設定でなくキャッシュそのものを作らないようにしたいのですが、その場合はno-cacheのままでよさげでしょうか?
そして Header set Expires -1 も書き加えてみたのですが、相変わらずキャッシュしてしまいます…
そもそもOperaの設定自体でキャッシュ無効にしても、終了時に消えるだけでキャッシュ自体はしているようなので
キャッシュを作らないように出来ないのがOperaの現仕様なんでしょうかねえ…
27:18
08/03/25 23:49:31
>>26
Expires: -1 ってそんな指定教えるなよ、と思って書いただけなので -1 は忘れてください。
>>17のような HTTP-Date 形式で吐くことになってます。
mod_headers が使えるんだったら Cache-Control に no-store もつけて
Header set Cache-Control "max-age=0, no-store"
でどうでしょ。
でも>>26後半を読むと、キャッシュしてようが If-Modified-Since なしで GET をかける
動作になれば Opera にとっては「キャッシュしてないよ」なのかもしれない。
28:18
08/03/26 00:17:42
連投スマソ。
手元の apache で mod_headers 効かせて Firefox/2.0.0.12 で試してみたら
・Cache-Control: no-cache → リロードすると 304 Not Modified …ってキャッシュしてる
・Cache-Control: max-age=0 → 304 Not Modified
・Cache-Control: max-age=0, no-store → 200 OK
こんな感じに。
29:Name_Not_Found
08/03/26 12:21:52
誘導されてきますた
ロボ避けとBASIC認証を使いたいんだが、書き方は間違ってないと思うのに発動しなくて困ってる
ロボ避け用の.htaccessファイル、パス用の.htpasswdファイル、.htpassedの位置を指定するbasic認証用ファイルが必要なんだよな?
自分のPC上だと.htaccess.txtで保存されるから、アップロードしたあと.htaccessに名前変えればいいんだよな?
いまいちよく分かってないのがフルパスだからそこに原因があるのかもしれない…
ホームディレクトリまでのフルパスが /home/example1/public_html
だったら、basic認証のファイルには
AuthUserFile /home/example1/public_html/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
と書けばいいってことか?
index以外の全ページに制限かけたい時は
AuthUserFile /home/example1/public_html/inde.html/.htpasswd
になる?
初歩的な質問ですまないが助言くれると助かります
30:Name_Not_Found
08/03/26 14:10:52
国外からの接続を切ろうとしています。
攻撃を受けたことはないので、一応の希望ということで考えています。
SetEnvIf Request_URI .* ng
SetEnvIf Accept-Language ja !ng
Order allow,deny
Allow from .jp
Allow from .net
Allow from .com
Deny from env=ng
ErrorDocument 403 /error/403.html
Accept-Language はおまじないのようなものだと思うのですが、
実際、プロキシ経由の接続が通ったようです。
これだけでは不足でしょうか。
URLリンク(www.cgis.biz)
ここからダウンロードしたhtaccessにはIPが羅列されていますが、
これをそのまま使ってもよいのでしょうか。
ずいぶん長い列ですが、これでなければならないのかと気にしています。
31:Name_Not_Found
08/03/26 14:48:18
>>30
apacheのhttp.confでHostnameLookupsがonになってなかったら、
Allow from .jpなんてのは使えないと思うけど、それは大丈夫?
それと、国外からのアクセスを全て拒否なら、
order deny,allow
deny from all
で、全てを拒否して、それから、
allow from 国内のISP
として、国内だけを許可するほうが良いと思うが。
32:Name_Not_Found
08/03/26 16:35:06
>>29
自分用語を使わずに書いてください。「index以外全ページ」が何を指すのかとか、わかりにくい。
> ロボ避け用の.htaccessファイル、パス用の.htpasswdファイル、.htpassedの位置を指定するbasic認証用ファイルが必要なんだよな?
ロボ対策+認証用の .htaccess と パスワードを書いた .htpasswdがそれぞれ1つ。
/home/example1/.htpasswd ← public_html 内には(なるべく)置かない。
/home/example1/.htaccess の内容
--
ロボ避けだかなんだかの記述がずらずら
AuthUserFile /home/example1/.htpasswd ←置いた場所
AuthName "Restricted Area"
AuthType Basic
require valid-user
--
> index以外の全ページに制限かけたい時は
<FilesMatch "^index\.(txt|pl|rb|exe|cgi|php|s?html?)$">
Order Allow,Deny
Allow from all
</FilesMatch>
みたいなのを追記して認証の制限から除外しておく。この記述だとロボットも歓迎するけど。
33:32
08/03/26 16:36:30
ていせい。
× /home/example1/.htaccess の内容
○ /home/example1/public_html/.htaccess の内容
34:Name_Not_Found
08/03/26 18:04:18
>>31
HostnameLookups off でも Allow|Deny にホスト記述があれば引こうとする。
ただ REMOTE_HOST の値を使う記述での keep-alive 時の挙動がアレ。
「一旦全拒否」は Order Allow,Deny だけで足りるよ。
マニュアルの Order ディレクティブのところ参照。
>>30
個人的には Accept-Language 見てる時点で
Order Deny,Allow
Deny from env=ng
だけでいいかなと。
その記述だと逆引き未設定なだけの国内IPは allow してもらえない。
国外をどうしても蹴りたくて、国内IPはどうしても蹴りたくないのなら
その「ずいぶん長い」のを使うのが無難かも。
35:29
08/03/27 01:48:22
>>32
初心者丸出しでスマソorz
レスありがとう、やってみます。
36:30
08/03/27 02:50:45
どうもありがとうございます。
.net と .com のプロバイダを調べるのが面倒で、
うろ覚えですが、Accept-Languageを入れておけば
とりあえず問題ないかと考えていたような気がします。
Accept-Languageだけで規制するならば、
確かにホストやIPを見る必要はなさそうですね。
容易に偽装できるのであまり役に立たないかもしれませんが…。
プロキシを使って接続するのは自分のホストを知られたくないからだろうかと思うと
無理に規制するのもどうかとは思うのですが、
なんとなく気持ちが悪いので>30のリストを使うことも考えてみます。
37:Name_Not_Found
08/03/27 06:21:12
JPNICの国内アドレス全部とBBQで海外と国内のプロクシ含めた国内以外全部弾けるよ うちはそうしてる
38:Name_Not_Found
08/03/27 15:40:47
特定のIPからの接続を許可し、かつ リクエストのHostが特定の
ものの場合だけアクセスを許可したいのですが、そのような設定は
可能ですか?
SetEnvIf Remote_Addr "127\.0\.0\.1" ok_ip
SetEnvIf Remote_Addr "192\.168\.0\." ok_ip
SetEnvIf Host "ex\.hoge\.com" ok_host
までは分かるのですが、Order以下をどのように書けばよいのか
分かりません。
39:Name_Not_Found
08/03/27 16:18:09
>>38
なぜにそんな面倒くさいことを・・・
order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.0.0/24
ではダメなのか?
40:Name_Not_Found
08/03/27 16:20:09
どうせあいつの事だから
SetEnvIf Host . ng_host
SetEnvIf Host ex\.hoge\.com !ng_host
Order allow,deny
Allow from 127 192.168.0
Deny from env=ng_host
なんて答えを用意しやがりそうですぅw
41:Name_Not_Found
08/03/27 16:52:16
>>38
>Hostが特定のものの場合だけ
Virtual Hostにして、HOSTが特定のものじゃない時には別サイトを表示
すればいいのじゃまいか?
42:Name_Not_Found
08/03/27 17:42:55
質問です。
現在、独自ドメインでサイトを運営しています。
自分のサイトにアクセスする際に、wwwなしのアクセスをwww有りのほうへ
転送させたいと思ってます。
そこで、以下のように.htaccessファイルに記述しました。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(mydomain¥.com)(:80)? [NC]
RewriteRule ^(.*) URLリンク(www.mydomain.com) [R=301,L]
これで、URLリンク(mydomain.com) へアクセスが有った場合に
URLリンク(www.mydomain.com) に転送させようと思ったんですが、
相変わらずURLリンク(mydomain.com) にアクセス出来てしまいます。
上記の記述の何が悪いのか、分かる方がいたら教えてください。
43:38
08/03/27 17:46:41
みなさん回答どうもです。
IPでのアクセスや、こちらが用意したHost名以外からの
アクセスを禁止したかったのですが、>>40さんの方法で
無事できました。
先に全てをNGに設定しておいて、許可する場合だけ
NGの環境変数を無くすというのは目から鱗でした。
ありがとうございました。
44:26
08/03/27 21:23:09
>>27
教えて頂いたものを試したら無事出来ました!どうもありがとうございました
45:Name_Not_Found
08/03/28 01:16:36
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
MySQL 総合 Part13 [データベース]
qsv系のスパムメール被害 qsv03 [架空請求・spam]
46:Name_Not_Found
08/03/28 22:27:19
>>3の後半を書いたのは無意味だったような気がしています。
>>42
前にも似たような書き方を見たから
RewriteCond %{HTTP_HOST} ^(example\.com)(:80)? [NC]
どこのサイトでこういう書き方を教えてるのかなと気になる程度で
記述の問題ではなさそう。
・www ありのほうのドキュメントルートにそれを置いていないか
・ドメイン屋のおまけ機能のフレーム転送たら言うのが www なしのほうで効いてないか
・その他いろいろ
・日頃の行い
この辺を確認してください。
47:42
08/03/29 14:56:20
>>46
レスありがとうございます。
.htaccessの記述に関しては、以下のサイトで作成しました。
URLリンク(www.htaccesseditor.com)
>・www ありのほうのドキュメントルートにそれを置いていないか
レンタルサーバー業者からは、ドキュメントを置くフォルダを指定されていて、
wwwありとか無しとかの区別がよく分かりません。
もしかしてこの辺が問題なのかもしれないです。
とりあえず、いろいろやってみます。
48:Name_Not_Found
08/03/31 19:12:21
質問させて下さい。
・refererが外部サーバだった場合、トップページにリダイレクト
というのはどう書けばいいのでしょうか?
テンプレに載っているリンク先を読みましたが、
・refererによるアクセス制限で、外部サーバからの呼び出しを禁止
・あるディレクトリ(または古いサーバなど)にアクセスしたら今のサーバのトップにリダイレクト
というのは分かったのですが、両者の機能を足したやり方が分かりません。
どうか宜しくお願いいたします。
49:Name_Not_Found
08/03/31 20:58:55
特定のREFERERがトップページではない場合に
トップページにする方法を教えてください
50:Name_Not_Found
08/03/31 22:20:40
>>49
自サーバーがwww.example.comだとして、これでどうだ?
試してないから自信はないがw
RewriteCond %{HTTP_REFERER} !www¥.example¥.com
RewriteRule ^.*$ URLリンク(www.example.com) [R,L]
51:Name_Not_Found
08/03/31 23:18:46
>>50
レスありがとうございます。
ちょっと今借りてるサーバーが落ちてて試せないので;;
自分のサイト
URLリンク(www.example.com)
他サイト1,2
example.jp 、example.net
他サイトが張っているリンク
URLリンク(www.example.com)
他サイトからのアクセスをURLリンク(www.example.com)にしたいのです。
RewriteEngine on
SetEnvIf REFERER "example.jp" Ref
SetEnvIf REFERER "example.net" Ref
RewriteCond %{Ref} !www\.example\.com
RewriteRule ^.*$ URLリンク(www.example.com) [R,L]
こんな感じでしょうか?
52:Name_Not_Found
08/03/31 23:34:01
>>51
ワラタ
53:Name_Not_Found
08/03/31 23:35:08
>>51
何がしたいのかわからんw
54:Name_Not_Found
08/04/01 00:44:53
何だよ。教えてくださいよ。
微妙だから
自分のサイト
URLリンク(www.example.com)
他サイト1,2
example.jp 、example.net
他サイトが張っているリンク
URLリンク(www.example.com)
他サイトからのアクセスをURLリンク(www.example.com)にしたいのです。
って書いてるのに。
55:51
08/04/01 02:54:46
そうか!RewriteCondにRefを放り込んだらダメですよね。。w
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} "example\.jp"
RewriteCond %{HTTP_USER_AGENT} "example\.net"
RewriteRule ^.*$ URLリンク(www.example.com) [R,L]
こうかな。
まだ鯖落ち中orz
56:Name_Not_Found
08/04/01 06:52:33 DjL4NC5I
初心者スレから誘導されたので、こちらで質問させて頂きます。
トップページ以外へのアクセスをすべてトップページへ転送させたいのですが、
Refererが自分のサーバ以外の場合にしたいのです。
.htaccessを自分でも出来る限り調べましたが、Refererによる制限とリダイレクトを組み合わせる方法が分かりません。
組み合わせは出来ないのでしょうか。
どうかご教授宜しくお願いします。
57:Name_Not_Found
08/04/01 09:03:52
>>54
> 他サイト1,2
ってなんだよ。
参照元のことか?
58:Name_Not_Found
08/04/01 09:55:23
>>57
そうです。
特定の参照元からのトップ以下のアクセスは
すべてトップに飛ばしたいです。
59:Name_Not_Found
08/04/01 14:18:04
>>56さんと重なるかもしれないんですが
60:Name_Not_Found
08/04/01 14:22:20
>>56さんと重なっているかもしれません。
URLリンク(zen.example.com)をURLリンク(go.example.com)<)もURLリンク(go.example.com)<)もURLリンク(go.example.com)<)に転送させたいのです。
Redirect permanentを試してみたのですが、それだと/zen/の部分が/go/に代わるだけなので
htmlをphpに変えた場合などには有効なのですが、私がやりたいことには使えません。
ご存知の方がいれば教えていただきたいです。
61:Name_Not_Found
08/04/01 14:37:04
>>58
じゃ不特定の参照元から、トップ以下のページへアクセスがあった場合は、
トップに飛ばさずにそのまま見せるということでいいのか?
62:Name_Not_Found
08/04/01 14:52:40
HTTP_REFERER && Redirect な注文の中の人は何人いるんだろう。
>>60
zen.example.com 側で
RedirectMatch 301 .* URLリンク(go.example.com)
すれば go.examle.com の / に 301 してくれたような気がします。
63:Name_Not_Found
08/04/01 15:02:55
>>61
そうです。
REFERER無しの場合もそのまま見せます
64:Name_Not_Found
08/04/02 00:56:50
ここのうぷろだみたいに URLリンク(www.uploda.org)
音声ファイルを直リン禁止にしつつ
右クリでダウンロードできるようにするには
どうしたらいいだろ?
その辺のサンプルみてやったら
音声ファイルは左クリも右クリも駄目になった
65:Name_Not_Found
08/04/02 08:14:41
>>64
リファラみてるだけでしょ
66:Name_Not_Found
08/04/02 13:07:33
>>62
ありがとうございました!できました!感謝です。
67:1/2
08/04/02 15:34:39
質問です。
今現在、以下のように2つの.htaccessを使ってアクセス制限をかけているのですが、
この.htaccess(A)と.htaccess(B)を一つの.htaccessファイルに纏める事は出来ませんか?
-/public_html/─┼─.htaccess(A)
│
┼─/folder/─┼─.htaccess(B)
│
┼─保護したいファイル.html
----------------
※.htaccess(A)の内容※
# 日本人のみをアクセス許可
order deny,allow
deny from all
allow from .jp
allow from .bbtec.net #Yahoo BB
allow from .il24.net #Interlink
:
:
68:2/2
08/04/02 15:35:12
※.htaccess(B)の内容※
#ブラックリスト
order allow,deny
allow from all
deny from ***.***.jp
deny from ***.***.il24.net
:
:
----------------
検索をかけても他のページばかりが引っ掛かり、
目的の情報が見つからず途方に暮れています…。宜しくお願いします。
69:Name_Not_Found
08/04/02 15:47:22
.htaccessって
<Directory>
は使えなかったっけ?
70:Name_Not_Found
08/04/02 16:03:42
>>67-68
それでは(A)を読んだ後で(B)を読んだ時に(B)にOrder, Allow, Denyの
いずれかのディレクティブが現れた時点で(A)のアクセス制限が
解除されてしまうですぅ。
ですから(B)の方に(A)のAllowをくっつけるという事になるんでしょうけど、
Orderがallow,denyの時はDeny from allの、deny,allowの時はAllow from allの
意味を持つという基本かつWebサーバのドキュメント以外で説明されているところを
見たことが無い動作を使って
Order allow,deny
Allow from .jp
Allow from ...
Deny from ***.***.jp
Deny from ***.***
と書けばうまくくっつくです。
>>69
.htaccessが<Directoryで囲まれている部分の中身のようなものですぅ。
厳密には解析される順序が違うですけど。
71:Name_Not_Found
08/04/02 16:35:49
公式のドキュメント以外で s/(allow|deny) from all$//ig; な話が
一番たくさん書かれてるのは歴代のこのスレかもしれない。
72:67-68
08/04/02 18:06:44
>>70
教えて頂いた方法で上手く行きました。
ありがとうございました!
海外弾きを入れる前まではOrder allow,denyだけを使って弾いていて、
階層別に記述した.htaccessも何となく上手く行っていたので
解答が得られなかった場合はそのままで行くつもりだったのですが、
すでに落とし穴に嵌っていたのですね…。
早めに気付けて良かったです。本当に助かりました。
73:Name_Not_Found
08/04/02 22:07:06
>>65
特に細工しなくてもできるってことか
じゃ使ってるXREA鯖の仕様の問題かな
74:74
08/04/03 04:35:59
/home .htaccess1(検索避け+jp他日本ドメイン許可・ロボテキ参照可)
│
├─/hoge 403等エラードキュメント用ファイル
│
├─/dir_1/index.html (リンク等でここにアクセス多々有)
│ │ .htaccess2(検索避け+jp他日本ドメインok・403エラーメッセージ指定)
│ │
│ ├─/dat
│ │
│ └─/img .htaccess3(reffererが自サイトの時だけ表示を許可)
│
└─/dir_2
おおまかにこのような状態です。続きます
75:74続きです
08/04/03 04:38:37
■.htaccess1の内容(検索避け+jp他日本ドメイン許可・ロボテキ参照許可)
SetEnvIf User-Agent "××bot" shutout
SetEnvIf REFERER "URLリンク(www.)××.jp" shutout
:
order allow,deny
allow from .jp
allow from .××.net
:
deny from env=shutout
deny from ××.net
:
<Files robots.txt>
order deny,allow
allow from all
</Files>
■/dir_1/index.html ←最もアクセスされるディレクトリ
に設置する.htaccess2の内容(検索避け+jp他日本ドメインok・403エラー指定)
(.htaccess1と同じものを書いた上で)
deny from env=shutout
deny from ××.net
: の後に
ErrorDocument 403 /home/hoge/403.html
<Files robots.txt>以下は削除
この1と2のように、多重に少しずつ違う.htaccessを置くことは
避けたほうが良いのでしょうか?
回線のせいか自分では非常に重くなったと感じませんが、サーバに大きな負担になるものでしょうか。
76:Name_Not_Found
08/04/03 12:56:04
/d/.htaccess
/d/d/.htaccess
/d/d/d/.htaccess
/d/d/d/d/.htaccess
/d/d/d/d/d/.htaccess
/d/d/d/d/d/d/.htaccess
/d/d/d/d/d/d/d/.htaccess
/d/d/d/d/d/d/d/d/.htaccess
という.htaccessがある状態で
/d/d/d/d/d/d/d/d/page.html
へアクセスした時は結構遅滞する感じがあるですけど、2~3階層程度なら
今のサーバなら問題ないレベルだと思うですぅ。
もちろん
/d1/.htaccess
/d2/.htaccess
:
/d100/.htaccess
のように同じ階層でもたくさんあるとディスクキャッシュから落ちた分を
読み込みなおす分の遅滞が起きやすくなるですぅ。
77:74
08/04/03 14:22:10
>>75
なるほど、あまりにも多重にならなければ
現在ではそんなに差がないのですね。
読み直す分の遅延、という点のほうを気をつけることにします。
ありがとうございました。
78:Name_Not_Found
08/04/03 17:58:00
ダウンローダほんとうざいな。偽装してもバレバレだっつうの
URLリンク(news23.jeez.jp)
79:Name_Not_Found
08/04/03 23:39:27
29でBASIC認証について質問した者です
おかげで思い通りに設置出来ました。ありがとう。
すみませんがまた質問をさせてください。
設置は出来たんだけど、今度は何故か正しいPASSを入力しても中に入れないんだ…
普通に.htpasswdにIDとPASS書いたんだけどな。
PASSはネット上の暗号化ツールを利用させてもらって暗号化しましたし…。
何度も試してるんだけど何が良くないんだろう…
何か思い当たる原因などあるでしょうか。
80:Name_Not_Found
08/04/04 12:09:42
このスレでは.htpasswdの質問まで受け付けてくれるのでしょうか?
.ht*関連対応かという、スレに挙がる質問全般についての疑問です
スレタイ".htaccess"に忠実なのか、意外とファジーなのか
今後質問する際の参考にしたいと思い質問させてください
81:Name_Not_Found
08/04/04 16:37:31 fWriW/iS
ErrorDocumentの後ろにQUERY_STRINGつけて飛ばしたいんだけど、
どうやればいいの?
こんな感じのことしたい
ErrorDocument 401 /404.php?%{QUERY_STRING}
82:Name_Not_Found
08/04/04 16:48:31
解決しました
83:Name_Not_Found
08/04/04 18:50:49
>>81→>>82?
>>79
考えられる原因は
・改行とかパーミッションとか
・諸事情でパスワードの暗号化方式に種類があって(以下略
・.htpasswd が AuthUserFile で指定された場所に、ない ←たぶんこれ。
今まで同じ質問が来るたびに ID=nanasi / PW=aaaa 時の記述・数パターンを提示しても
「全部通りません」が大半なので、暗号化にミスって云々の可能性は低そうです。
配置確認用のCGIでも書いておけば、スレで使い回せるのかな。
>>80
単に正規表現の話になってたり RFC2616 の話をしてたりするぐらいの忠実さです。
.htpasswd の質問はここでいいと思うけど /usr/sbin/htpasswd の質問がどうなるかは不明。
84:Name_Not_Found
08/04/04 21:47:15
AuthUserFileが読めない時はInternal Server Errorになるから
Authorization Requiredが返ってくるならAuthUserFileの
中身の問題になるわぁ。
$apr1$で始まるMD5ハッシュと{SHA}で始まるSHAハッシュ以外は
サーバのOS依存になるわぁ。
パスワードをそのまま平文で登録する→Windows, BeOS, NetWare? のみ
OS付属の関数でハッシュ化する→上の3種以外のOSのデフォルトで通常はDESが使われる
htpasswd以外での暗号化ツールのほとんどはDESによるものだから
Windows上でちょっと実験用にというときにパスワードが通らなかったりするわぁ?
85:83
08/04/04 22:10:31
> AuthUserFileが読めない時はInternal Server Errorになるから
「あれっ、勘違いしてた?」と思いながら試してみたら
AuthType Basic
AuthName "test area"
AuthUserFile /dev/urandom/.htpasswd
Require valid-user
401 の進呈を受けました。うーん。
86:Name_Not_Found
08/04/05 00:53:04
「あれっ、勘違いしてた?」と思って探してみたら、ファイルが読めなくても
Authorization Requiredが返る条件があるわぁ。
Authorization Requiredが返ったからファイルが読めていると勘違いされた方々には
深くお詫び申し上げますわぁ。
87:79
08/04/05 12:28:57
>>83-86
返答ありがとうございます!
Authorization Requiredが返ってきてます
つまりは
AuthUserFile /xxx/eample/.htpasswd
の部分の記述がおかしい可能性が高いってことでしょうか。
指定場所は今ので合ってるつもりなんだけど…、うーん…
とりあえず、色々やってみます。レスありがとうございました!
88:79
08/04/05 12:53:18
解決しました!!
配置指定にpublic_htmlが足りなかっただけのようで。
何やら稚拙な質問ばかりしてしまいすみません。
反応くださった方々、本当にありがとうございました!
スレ汚し失礼しました!
89:Name_Not_Found
08/04/05 14:12:50
ヽ
_,,.,、、,.ィ-- ti- 、、、....,,,,_ ',
,,..、、ri':'゙/~ レ ' ゙ヘ:l : : : :~,>
_,...r:::''"::/ l/ .l:/-=ニ二,'_ー- 、、 !l!;: r '"
'''<:::::::::::::;、r' `'' ‐-`.、 /
-、 l::::::::::::l <"゙'i;ソ' ',
~.ヽ l:::::::::::l ~' '、
/ .) .l::::::::::! '、
ヽ .l:!l:::::l ヽ '、
\ ' l! l::!l! ヽ ,'
゙ ヾ ‐'" ,. r ゙
ー-‐i ,.r,,iilll鬚髯ヲ そんなに何も見えてないんじゃ
. l `''' ‐‐ ---t‐'
 ̄ ̄ ̄ ̄ ̄ ̄~"''、' ‐ 、 ー‐ノ 生きてても面白くないでしょう
', ヽ l
l l l
l l ノ
90:Name_Not_Found
08/04/05 14:39:20
しかしなんだな。文末に!を連発されると、なんかこう.....
91:Name_Not_Found
08/04/05 18:30:41
若いっていいじゃないか┐(´ー`)┌フッ
92:Name_Not_Found
08/04/05 18:49:16
すみません。
ファイルの一覧表示を禁止し、エラーページを表示出来るようにするために
Options -Indexes
ErrorDocument 401 error/401.html
ErrorDocument 403 error/403.html
ErrorDocument 404 error/404.html
ErrorDocument 500 error/500.html
という記述をしたのですがどうにもこうにもインターネットエラーになってしまいます。
93:Name_Not_Found
08/04/05 20:48:07
>>92
Options は使える環境?
レンタルサーバだと Options が使えない場合があるよ
.htaccess の最後の行は改行してる?
94:Name_Not_Found
08/04/05 21:25:56
>>92
こういうときは、1行ずつ試してみるものさ
95:Name_Not_Found
08/04/06 10:50:24
.jpと.bbtec.netなど日本のプロバイダ限定にしています。
今まではそれで海外や串からのアクセスを弾けていたのに
昨日中国のIPが入ってきました。韓国など他のIPは弾けています。
.cnをいれても中国IP(変動)だけが弾けません。特別な方法などありますか?
宜しくお願いします。
96:Name_Not_Found
08/04/06 11:24:49
1) deny,allow
2) allow,deny
の書いている順序は上記どちらになっていますか?
過去ログをさかのぼれば分かると思いますが、
上記の順序によっては設定が筒抜けになっているのかもしれませんね
97:Name_Not_Found
08/04/06 12:59:04
95です。レスありがとうございます。
deny,allowになっています。他の国は弾けているんですけどね…
98:Name_Not_Found
08/04/06 13:11:10
何度もすみません。記述の仕方はこうです。↓
Order Deny,Allow
Deny from all
Allow from .bbtec.net
Allow from .jp
99:Name_Not_Found
08/04/06 15:01:31
APNIC
100:Name_Not_Found
08/04/06 16:53:55
>>93
さくらインターネットなのでOptions使えないみたいでした。。
ErrorDocument単独でやってみたのですがそれもできませぬ・・・。
うーん、さくらインターネット。。。
ちなみに最後の行は改行してます。
一行ずつも試してみたのですが。。。
101:Name_Not_Found
08/04/06 17:15:07
4/1からiモードIDが導入されたのでそれを使って携帯の自動認証をしたいのですが、
RewriteEngine on
RewriteRule ^(.*)$ $1?guid=on
SetEnvIf HTTP_X_DCMGUID "*******" mypage
allow from env=mypage
deny from all
このようにhtaccessで、自動的にiモードIDをURLに付加して、認証まで終わらせる事は
可能でしょうか?
中のページ全部にguid=onとX_DCMGUIDを入れるのは大変すぎです。
ちなみに上記の記述ではuidは付加してくれないし、読み込んでもくれません(涙
102:Name_Not_Found
08/04/06 17:15:39
Options使えなきゃ一覧隠せないなぁ・・・。
あぁ、まじさくらインターネット、まじさくらインターネット。
103:Name_Not_Found
08/04/06 17:31:39
>>100
URLリンク(httpd.apache.org)
> URL の場合は、スラッシュで始まる (/) ローカルの web-path ( DocumentRoot からの相対パス ) か、
スラッシュで(略)らしいです。
-Indexes のほうは DirectoryIndex に 403 か 404 が返るはずのファイル名を
追加すれば、なんとなく似たような動作になります。
よくわかんなかったら0バイトの index.html でも置いとく。
104:Name_Not_Found
08/04/06 18:40:31
>>101
>SetEnvIf HTTP_X_DCMGUID "*******" mypage
おまい、この記述が好きだなw
105:Name_Not_Found
08/04/06 20:15:24
>>100
さくらでも ErrorDocument 使えますよ
設定のどこかで挫けているはずなので、以下の手順でいかがでしょう?
1) 適当なディレクトリに ErrorDocument の記述だけした .htaccess を設置
2) <アカウント名>.sakura.ne.jp/<適当なディレクトリ> へのアクセスで実験
3) 手順 2) が成功した後、独自ドメイン等でもテスト
あとは他の方のアドバイスを参考にしつつ、
さくら独自の設定でこけていると感じたらこちらへ
さくらインターネット 質問にマジレスするスレ Part15
スレリンク(hosting板)
106:Name_Not_Found
08/04/06 20:17:25
>>102
Options 使えなくてもファイルやディレクトリの一覧は隠せますよ
違うことの一覧をおっしゃっているのでしたら失礼
質問される方は質問した最初のレス番号を名前欄に入れておくと
回答側から分かりやすくてよいと思いますので参考まで
107:Name_Not_Found
08/04/06 21:19:25
>>103 >>105
どもっす。
相対パスでうまくいかなかったので絶対パスでやったらうまくいきましたです。
どうもよくわからんなぁ・・・、なんで相対パスが上手くいかないのか・・・。
>>106
DirectoryIndex index.html .ht
これを使ってみたら成功しました♪
回答ありがとです。
108:Name_Not_Found
08/04/06 22:55:16
>>104
一回使うと、特に理由がないけど、次からも同じような記述をしてしまう・・・
同じパターンで使えば、不具合箇所を探すのも楽だし。
109:Name_Not_Found
08/04/09 10:44:37
IEとそうでないブラウザで別の拡張子のファイルを提示、なんてことできる?
110:Name_Not_Found
08/04/09 13:16:21
>>109
できる。
111:Name_Not_Found
08/04/09 23:39:15 6gFkkBWp
Ubuntu 7.10 デスクトップに、 Apache/2.2.4 をインストールしてあります。
CGIとコンテントネゴシエーションの併用したいので、下記の記述をしました。
.htaccess
─────
Options +ExecCGI +MultiViews
AddHandler cgi-script .cgi
─────
確認用のファイル
─────
sample.html
hello.cgi
─────
sample.html と sample でアクセスすると sample.html が表示され、
hello.cgi でアクセスすると、hello.cgi の実行結果が表示されます。
hello でアクセスした際に、hello.cgi の実行結果が表示されることを
期待しているのですが 404 Not Found の表示となってしまいます。
(The requested URL /hello was not found on this server.)
ブラウザのキャッシュを消去して確認しても同様です。
ログには下記エラーメッセージが出力されます。
==> /var/log/apache2/error.log <==
[Wed Apr 09 23:29:26 2008] [error] [client 127.0.0.1] Negotiation: discovered file(s) matching request: /home/user/www/hello (None could be negotiated).
CGIとコンテントネゴシエーションの併用するには、他に何か必要ですか?
112:Name_Not_Found
08/04/10 12:21:14
>>110
どうやるの?
113:Name_Not_Found
08/04/10 12:49:38
mod_rewrite
114:Name_Not_Found
08/04/10 13:52:30 vDjoaP21
>>112
↓これどぞ。
RewriteCond
URLリンク(www.net-newbie.com)
> リクエストの中の ``User-Agent:'' ヘッダにしたがって ホームページサイトの書き換えを行なう
Browser Dependend Content
URLリンク(japache.infoscience.co.jp)
115:Name_Not_Found
08/04/10 14:13:57
質問させてください
(1) RewriteCond %{REMOTE_ADDR} ^xxx\.xxx\.
で弾くのと、
(2) deny from xxx.xxx.
で弾くのと、
サーバにかかる負荷は(2)の方が若干軽いといったことはありますでしょうか?
色々と調べてみたのですが該当する記述を見つけることができず、
どこかに該当情報がありましたら教えていただけますと助かります
よろしくお願いいたします
m(_ _)m
116:Name_Not_Found
08/04/10 14:14:34
あるよ
117:111
08/04/10 14:16:26
>>111 の件、解決しました。
AddType text/html .cgi
を追加したらhello でアクセスした際に、hello.cgi の実行結果が表示された。
参考:
[Apache-Users 1451] Re: DirectoryIndex and Content Negotiation in 2.x
URLリンク(mm.apache.jp)
118:Name_Not_Found
08/04/10 14:42:15
>>115
Deny ディレクティブがアクセス制限用のものであることからも、
RewriteCond よりは負荷は少ないと思われ。実環境で試すしかないんじゃね?
使い方では同じことできるけど、元々利用目的が違うから比較の情報はないかも。
Deny ディレクティブ
URLリンク(httpd.apache.org)
RewriteCond Directive
URLリンク(httpd.apache.org)
RewriteCond で正規表現を使わずにプチ最適化
URLリンク(norainu.net)
119:Name_Not_Found
08/04/10 16:05:04
softbank000123456789bbtec.netを規制するのだったら
2chがSoftBankBB規制する時と同じ要領でsoftbank000123を規制すればいい
softbank000123XXXXXXbbtec.net
↑
ここは変動しても
softbank000123XXXXXXbbtec.net
↑
ホストの先頭6桁は地域固定されてるから変動しない
120:Name_Not_Found
08/04/10 20:18:01
質問です。
PHPを組み込んだXHTMLを動作させるためには、
必ずMIMEタイプはapplication/x-httpd-phpでないといけないのでしょうか。
できればXHTML文書としてapplication/xhtml+xmlを指定したいのですが・・・。
121:Name_Not_Found
08/04/10 20:31:48
>>120
IEが表示できないと思うが
ま、それはさておき、phpから、ヘッダーを出すときに、
application/xhtml+xml
を指定すればよいだけでは?
122:120
08/04/10 20:37:16
>>121
ごめん、どうやったらPHPからヘッダーを出すときにMIMEタイプを指定できるの?
123:edry(えどりぃ)
08/04/10 20:51:18 vDjoaP21
>>122
↓これはどお? header()関数で指定するらしい。
URLリンク(oshiete1.goo.ne.jp)
124:120
08/04/10 20:54:46
>>123
なるほど、専用の関数が用意されているんですね。
ありがとうございました。
125:Name_Not_Found
08/04/10 21:03:16
お前らってどうやって.htaccessについて勉強してるんだ?
なんか基礎的な文法から体系的に説明しているサイトなり書籍なりは存在しないものか。
126:Name_Not_Found
08/04/10 21:26:17
日本人の情報は真偽が確かじゃないからマニュアル
127:Name_Not_Found
08/04/10 21:50:17
>>122
phpは、スクリプト中でprintやechoが出てきたとき、ヘッダーが
送られてなかったら、勝手に
Content-type: html/text
を送るあるよ
なので、phpからhtml/text以外のコンテンツをはき出す場合は、
header
で、適切なヘッダーを送り出さないといかんのです
128:Name_Not_Found
08/04/10 21:55:01
>html/text
129:Name_Not_Found
08/04/10 21:57:08
>>128
アイムソーリー、フクダソーリー
text/html
だなw
130:edry(えどりぃ)
08/04/10 22:01:03
>>125
>>2-3辺りはスルーですか...
↓基本的にはここ見てる。
URLリンク(httpd.apache.org)
URLリンク(httpd.apache.org)
見てもわかんない部分はあるので、実際に試してる。
試して分からないときは、ググる。
ググって分からないときは、質問してみる。>>111
それでも理解できないときは、もっかいググってる。
>>111 が >>117 で解決したのはそんな流れ。
なんだかんだ調べたり試したりしているうちに覚えるね。
習うより慣れろってことなんだと思う。
131:125
08/04/10 22:41:37
うーん、やっぱり体系的に説明されているものはないのか。
プログラミング言語とかXMLとかはそういうサイトなり本なりがあるのに、
なんで.htaccessに限ってないんだろうね。
不思議だ。
132:Name_Not_Found
08/04/10 23:14:21
>>131
.htaccessでやることは、httpd.confでできるからな。
.htaccessで探さずに、httpd.confでさがしたほうが良いかも。
133:edry(えどりぃ)
08/04/10 23:21:19
>>131
↓これ体系的だとおもうけど。体系的ってどういうことを指してるの。
URLリンク(httpd.apache.org)
もしかして解説しているサイトとか知りたいのかな。
「.htaccess 解説」でググるとそれなりにあるけど。
134:Name_Not_Found
08/04/10 23:25:56
>>133
「俺様のやりたいことが、すぐに見つかる」
じゃないかと
135:Name_Not_Found
08/04/11 00:30:46
>>125
人によって違うんだろうけど、>>126>>130に同じ。
URLリンク(localhost) で済む回答者は自分だけじゃないと思います。
・DNS 方面のお話。
・PCRE な正規表現。
・主に RFC2616。
・まだ何かありそう。
本気で解説しようとすればこんなめんどくさい事柄まで言及しないといけないから
「どっかで見たようなネタだけ」の解説サイトになりがちなのかもしれません。
(allow|deny) from all を教えて Order で「原則(許可|拒否)」が変わることを教えない
解説サイトが多いのは謎ですが。
136:Name_Not_Found
08/04/11 03:18:48
>>130
>>2-3辺りを時々見直す時があるけど、正直分かりにくい
すまん
137:edry(えどりぃ)
08/04/11 11:46:33
>>132 それちょっと罠あるよね。初めにはまったw
サーバー設定ファイルと .htaccess との関係とか前提知識がないと
.htaccess に設定したものが有効にならなくて困惑する。
前提知識がないままに(正しいと思って)解説しているサイトがあるので、
>>126 のように信じられないと言われるのも仕方がないのかな。
.htaccess に関して情報を必要としているのは、サーバー管理ではなく、
レンタルサーバーとかのユーザーだろうから、>>134 の言う通りで、
何ができるかが解りやすく説明されていると、>>136 の求めているもの
になるのだと思う。
私はさくらインターネット使っているので、有志のサイトとかも参考にしてる。
URLリンク(faq.sakuratan.com)
たとえサーバー設定ファイルをいじれないユーザーであれ、ウェブサイトを
運営するなら、>>135 の挙げたことは理解している方が望ましいけれど、
正直、それは情報量が多いし深い知識が必要なので、このスレで質問をする
人が求めているものではないのかもしれないし、その見解の相違があるから
質問者と回答者の間で不毛なやりとりになってしまうこともあるのだと思う。
そんなところかな。
それらを踏まえて、このスレのテンプレをちょっと考えてみます。
いい感じで誘導できて、質問者と回答者がうまいこと話せるもの、
日曜までには素案書くよ。
このスレの住人居る? いなければ次のスレ立てるまでは面倒みるけど、
住人が居るなら、テンプレの件を気に留めておいてもらえるとありがたい。
138:Name_Not_Found
08/04/11 13:19:05
勉強のためずっと居座ってはいるけど、
サーバを持っているわけでないので実際にひとつ試すだけでも手間がかかり、
結果なかなか身につかないという印象はある。
アクセス制限だけでも、
書いたものが希望通りに機能しているか調べるには時間がかかることがあるし。
せっかく勉強してもサーバごとに使用が許可されていたりされていなかったり、
同じ書き方でもレスポンスが違ったりするらしいので、なおさらわかりづらい。
目的別に書かれていてわかりやすいテンプレがあればうれしいとは思います。
139:Name_Not_Found
08/04/11 16:58:14
>>137
お願いします。頑張ってください。
140:Name_Not_Found
08/04/12 02:16:23
ちょっと前から自サイトに
外国からのアクセスが非常によく来るようになりました。
これを機にアクセス制限したいと思い
解説サイトやスレなどを参考に書きましたが
これをこのままアップしていいか今ひとつ自信がないので
どなたか詳しい方、添削・採点をお願いします。
したいことは
直リン防止・日本語使用者のみ許可・jpで終わる人のみ許可・
国内の許可したいIPのみ許可・検索サイトの「百度」を弾く
です。よろしくお願いします。
#直リンを禁止する
SetEnvIf Referer "www.example.org/" Lilith
Order Deny,Allow
Deny from all
Allow from env=Lilith
#日本語以外の人を弾く
SetEnvIf Accept-Language ja Lilith
Order Deny,Allow
Deny from all
Allow from env=Lilith
#jpで終わる人だけ許可する
Order Deny,Allow
Deny from all
Allow from .jp
#国内の許可したいIPのみ許可する
order deny,allow
deny from all
allow from 国内の許可したいIP
141:140
08/04/12 02:17:57
すみません、長過ぎたので分けました。上の続きです。
#「百度」を弾く
SetEnvIfNoCase User-Agent "Baiduspider" shutout
SetEnvIf User-Agent "baiduspider" shutout
SetEnvIf User-Agent "Baiduspider" shutout(略)
よろしくお願いいたします。
142:Name_Not_Found
08/04/12 02:35:06
>>140
直リンというのが何を意味しているのでしょうか?
・検索エンジン結果からのサイトの各ページへのダイレクトリンク
・掲載している画像など、txt系ファイル以外のコンテンツファイルへのリンク
・その他
百度以外も "spider" という UA (User-Agent) を使っているところが多いので、
"baiduspider" よりも
"spider" で弾いてしまってもよいかもしれません
それ以外のことについては他の方↓のアドバイスをご参考に~
143:Name_Not_Found
08/04/12 02:45:00
やってみて不具合があったら質問しろよ
144:Name_Not_Found
08/04/12 05:39:04
めんどくせーから俺の使ってる奴晒してやるよ
#百度
deny from 122.152.128.0/23
deny from 202.96.0.0/12
deny from 202.108.0.0/16
deny from 220.181.0.0/16
deny from 60.24.0.0/13
deny from 61.135.0.0/16
deny from asd.tj.cn
deny from bta.net.cn
deny from asianetcom.net
145:Name_Not_Found
08/04/12 08:42:59
>>140
deny from all
をやった時点で、それまでの設定は全て無効になっているんだがw
ちゃんころはじくなら、apacheでやるより、iptablesでやるほうがいいぞ
URLリンク(www.hakusan.tsg.ne.jp)
146:Name_Not_Found
08/04/13 16:45:19
URLリンク(www.robotstxt.org)
147:edry(えどりぃ)
08/04/13 18:44:39
>>140 直リンク以外の設定は下記でいいかと。
ドキュメントルートだとサイト全体に関わるので、まずは適当なディレクトリで試してね。
─────↓ここから
##### Order で評価の順番とデフォルト(初期状態)の設定をする。
# 下記は Allow を先に評価し、Deny を後に評価する設定。
# デフォルトは Deny form All となるため、以降 Allow で許可したものしかアクセスできない。
# Allow で許可したアクセスのなかで拒否をしたいものは、続く Deny で拒否すること。
Order Allow,Deny
##### Allow で許可するもの
## 日本語使用者を定義(SetEnvif)して、アクセスを許可(Allow)する。
## 日本語使用者とは、ブラウザの言語設定に ja があるものを想定している。
SetEnvif Accept-Language "ja" Accept_Langage_ja
Allow from env=Accept_Langage_ja
#
## .jp ドメインのアクセスを許可する。
Allow from .jp
#
## 特定のIPアドレスを許可する。(xxxは例だよ)
Allow from xxx.xxx.xxx.xxx
#
## 日本国内のIPアドレスに関しては下記が参考になるかも。
# URLリンク(akionweb.com)
# URLリンク(akionweb.com)
##### Deny で禁止するもの(Allow で許可されたものを上書きして禁止する)
## 特定のIPアドレスを拒否する。(xxxは例だよ)
Deny from xxx.xxx.xxx.xxx
# 許可したものに当てはまらない百度はアクセスがないと思いますが、
# すり抜けてきたものは個別に拒否するしかないかな。
─────↑ここまで
148:edry(えどりぃ)
08/04/13 18:51:41
>>140 直リンクの禁止も書いてみたけど、一度にやると訳分からなくので >>147 試した後でどぞ。
>>147 に追記することを想定してます。単独では機能しないので注意してね。
─────ここから
### 直リンクの禁止
# 直リンクとは、自分のウェブサイト以外からのリンク全てと想定しています。
# 直リンクの禁止は、リファラが自分のサイトではない場合に拒否をすることとします。
# 直リンクの禁止の例外として、直接URLを入力した場合やブックマークなどのアクセス、
# ファイアウォールやセキュリティソフトによりリファラが空の場合があることからも、
# そういったアクセスを拒否しないために、リファラが無い場合は許可とします。
# この設定は、拒否する対象をファイル名で指定するため、ページそのもの(html)や、
# 画像だけ(jpg)などを拡張子で選べます。
###
## example.com へのアクセスすべてを対象とするため ref_ng にホスト名を定義する。
SetEnvIf Host "example\.com" ref_ng
# Allow で許可したものでも直リンクさせないため、すべてのアクセスを対象とします。
# 正規表現で指定しているので . の前にはエスケープするため \ を書くこと。
#
## 自分のサイト内でのリンクを拒否しない。
# リファラが URLリンク(example.com) で始まるなら ref_ng を未定義にする。
SetEnvif Referer "^URLリンク(example\.com)" !ref_ng
#
## リファラが無い場合(ブックマークなど)を拒否しないために ref_ng を未定義にする。
SetEnvif Referer "^$" !ref_ng
#
## 拒否する対象のファイル
# () の中に対象の拡張子を | で区切って列挙する。
# 画像の直リンクだけ拒否したいなら (gif|jpg|jpeg|png) とかね。
# 下記はありそうなもの思いついた限りで拒否対象にしてみた例。
<FilesMatch "\.(gif|jpg|jpeg|png|lzh|zip|cgi|php|html|htm)$">
deny from env=ref_ng
</FilesMatch>
─────ここまで
149:Name_Not_Found
08/04/13 19:08:02
>>147
>Allow from .jp
これは、apacheのhttpd.confの設定が
HostnameLookups On
でなければ、効かないですな
ホスティングはオンになってることが多いのかな?
apacheのデフォルはoffだけど。。。
150:edry(えどりぃ)
08/04/13 22:36:59
>>149
Allow ディレクティブでドメイン名の設定をすると HostnameLookups
の設定に関わらず二重の逆引きを行なうそうですよ。
URLリンク(httpd.apache.org)
URLリンク(httpd.apache.org)
質問内容から質問者の知識が推し量れますので、いっぺんに何もかもを
成功させることは難しいと思いますから、とりあえず希望の設定を示し、
上手くいかない点があれば、それを掘り下げればいいかと思われ。
一発で上手くいけばしめたものですし、上手くいかなければやり直せばいいし。
回答はマターリが基本かなと。
151:edry(えどりぃ)
08/04/13 23:35:18
>>137 ではテンプレの素案を書くって気分だったけど、
.htaccess に触れて間もない私が書くにはも少し勉強が必要だった。
スレの雰囲気を理解しつつ、6以前の過去ログにも目を通したりして
時間かけてちゃんと考え直します。
とりあえず思うのは、まとめサイトあるといいね。
レンタルサーバーとかのまとめサイトで個別に .htaccess の説明が
あったりするけど、レンタルサーバーに依存しない共通の情報あれば
使いまわしもできるだろうし。
152:Name_Not_Found
08/04/13 23:56:07
不特定多数の人間が編集できるようなまとめサイトを作ろうという人がいるのであれば、
.htaccess関連の情報はセキュリティ的にクリティカルなものが多いので、
アカウントを取得しなければ編集できない等の注意を払っていただければ
積極的に編集参加したいと思います
153:Name_Not_Found
08/04/14 06:52:51 uOtvAZ0q
質問です。
携帯からのアクセスは別ページに飛ばす、というのは
どうやればいいのでしょうか?
・特定のホストからのアクセスを制限
・転送
この2つを組み合わせるのが分からなくて…
個人的にも調べましたが、有用な参考サイトがあれば教えて頂けるとありがたいです。
154:Name_Not_Found
08/04/14 08:39:57
>>153
3キャリアにリダイレクトするだけなら、それほどでもないよ
User Agentで判別すればいい。
振り分けには、色んな場合というか条件があると思うので、それを
ちゃんとまとめて、書き換え条件を書いていけば、面倒ではあるけ
ど、難しくはないと思う。
155:Name_Not_Found
08/04/14 08:42:43
>>153
実験してみた?
(A) 実験用のディレクトリを掘る
(B) 実験用の .htaccess を置く
(C) 1.特定ホストのアクセス制限と 2.携帯からのアクセス転送、以上が働くことを実験すれば OK
例(1)
RewriteEngine on
--------------------(α)
# 特定のホストからのアクセスを制限
RewriteCond %{REMOTE_HOST} ^hoge\.example\.com$ [NC,OR]
# または、RewriteCond %{REMOTE_ADDR} ^10\.20\.3[1-9]\. のようにしても OK
RewriteRule ^.*$ - [F]
--------------------(α)
# 転送
RewriteCond %{Http_USER_AGENT} <携帯の User agent> [NC,OR]
RewriteRule ^.*$ URLリンク(example.com) [R,L]
例(2)
Order Allow,Deny または Deny,Allow
<お好みで呪文をつらつらと>
deny from <特定のホスト>
例(1)の(α)部分を削除した Rewrite 分と組み合わせれば OK
参考サイトは .htaccess やアクセス制限などで検索すればゴロゴロ出てくるはず
# というか、今検索して参考になるような説明サイトがゴロゴロ見つかったんだけど…('A`)
156:153
08/04/14 11:18:21
>>154>>155
うわ!神が2人もいらっしゃる!本当にありがとうございます。
「.htaccess」で検索していても何処をどうすればいいか全く分からなかったのですが、
「.htaccess 携帯 振り分け」で検索したらやっと参考サイトが出てきました。
(恥ずかしながら「振り分け」というキーワードが思いつきませんでした。でもまだ自己解決したわけではありません…)
>>155さんが書いて下さったおかげで、自分が何をすればいいのかやっと分かりました。
ありがとうございます、頑張ってみます!
157:Name_Not_Found
08/04/14 11:55:18
携帯の振り分けの場合、User Agentを使うと、特にSoftbankは条件が面倒になる。
なので、俺は、ヘッダーのx-jphone-msnameで判別してる。
このヘッダーが存在してれば、Softbank端末として処理してる。
158:Name_Not_Found
08/04/14 13:00:23
■携帯電話(機器)情報サイト Mobile Guide
ユーザーエージェント(UA)について
URLリンク(mobile.np-os.net)
■各キャリアのユーザーエージェント情報
DoCoMo ユーザーエージェント情報(公式)
URLリンク(www.nttdocomo.co.jp)
au ユーザーエージェント情報(公式)
URLリンク(www.au.kddi.com)
SoftBank ユーザーエージェント情報(公式)
URLリンク(developers.softbankmobile.co.jp)
これだけ情報があれば十分だね
159:Name_Not_Found
08/04/14 14:57:10
このJavaScriptと同じようなことは.htaccessで出来ますか?
リファラにURLリンク(www.hoge.jp)を含まないものはすべて
URLリンク(www.hoge.jp)のトップに転送したいのですが…
var address = "URLリンク(www.hoge.jp)";
if((document.referrer == "") || (document.referrer.match(address) == null)){
window.location.href = address;
}
よろしくお願いします。
160:Name_Not_Found
08/04/14 17:06:19
>>159
たかだか158個の過去ログもよまんのか?w
161:Name_Not_Found
08/04/14 18:06:50
>>159
出来ます
>>56-からを読んでも分からなければ、
1.調べたこと
2.やってみたこと
3.その他、 .htaccess について知っていること(レベル)
などを書き添えて再質問してみてください
>>160
まぁねぇ
┐(´ー`)┌
162:edry(えどりぃ)
08/04/16 00:21:49
>>159
これでどうだろ。mod_rewrite モジュールが使えることが使用条件だけど。
適当なディレクトリで試してみて。
─────ここから
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^URLリンク(www\.example\.jp) [NC]
RewriteRule .* URLリンク(www.example.jp)
─────ここまで
163:Name_Not_Found
08/04/16 01:43:47
>>162
localhost で試してエラーログ見てみましょう。
164:Name_Not_Found
08/04/16 03:00:49
質問させて下さい
/home/example/.htaccess(A)※日本IPのみ許可&日本IPでも特定のIPやホストは拒否
/home/example/picture/.htaccess(B)※画像の直リンクを禁止
/home/example/secret/.htaccess(C)※BASIC認証(ロボ避けのための認証なのでIDとパスは公表している)
.htaccessは階層が深くなるごとに設定が上書きされてしまうとのことですが、上記のような構成では
picture、secretディレクトリは(A)のIP拒否設定は無効になっているということですよね?
それで(B)(C)にも(A)と同様のIP制限を書き加えようかと思っているのですが、(A)は60KBを超えているため
(B)(C)にも同じことを書くと負荷がすごいことになってしまいそうで不安です。
全てのディレクトリで(A)の制限を有効にし、かつそれぞれ直リンク禁止・認証を行うには
どのように記述するのが最も負荷が少なくてすむのでしょうか。
165:Name_Not_Found
08/04/16 08:43:11
>>164
ほんの一月ほど前にも同じような質問があったな
またおまいか?w
166:edry(えどりぃ)
08/04/16 11:20:48
>>163
↓これ出力された。
File does not exist: /home/user/www/test/favicon.ico
そっちの環境でなんか問題があるなら、
試した環境と結果の内容書かないと言いたいことが伝わらないよ。
167:Name_Not_Found
08/04/16 13:48:26
>>166
言いたいことは
Request exceeded the limit of 10 internal redirects due to probable configuration error.
です。そちらの環境では壮大なループにならないんですね。
%{HTTP_REFERER} ^$ で GET / しようが RewriteCond にマッチするので
RewriteRule を適用されて内部リダイレクトされるんだけど
その結果がまた RewriteRule 適用で内部リダイレクトされてその結果がまた(ry
というのが起きる環境を書け、と言われるとは思わなかった。
168:Name_Not_Found
08/04/16 14:07:11
>>167
こんなじゃだめか?
RewriteRule !^/$ URLリンク(www.example.jp) [R]
ルートじゃなきゃルートへってことで。
169:edry(えどりぃ)
08/04/16 17:26:48
>>167
言いたいこと分かりました。
転送先のディレクトリに >>162 の .htaccess を置くとまずいよね。
ってことですね。
エラーログについては Apache/2.2.4 (Ubuntu) の環境ですが、
LogLevel debug と RewriteLogLevel 9 にしてループさせてもそれ出なかった。
プラットフォームやバージョンほか、設定次第でゴニョゴニョできるので、
みんな同じとは言えないですね。
URLリンク(httpd.apache.org)
>>159 へのレスはできるかどうかだけ。"質問内容"に対する回答をしました。
> リファラにURLリンク(www.hoge.jp)を含まないものはすべて
> URLリンク(www.hoge.jp)のトップに転送したいのですが…
>>159 = >>163 >>167 なのかな?
>>162 を試して期待した結果でなかったのなら、何を求めているのかを改めて
質問してくれないと、何がしたいのか伝わらないよ。
もし違う人なら、>>137 でも書いたけど、質問してきた人が何を求めてるか
確認して応えないと、話が脱線して不毛なやりとりになってしまいますので、
やりとりを見ていて気になるところがあるなら、その旨書いて別途質問よろ。
170:Name_Not_Found
08/04/16 17:58:48
>>163==>>167 (!=>>159) です。質問はないんですよ。
「不毛なやりとり」にならないよう、以上で。
171:Name_Not_Found
08/04/16 18:25:42
アニヲタさん(複数?)や無駄に腰が低い人(>>27とかの人)を
最近見かけなくなったように思う
>>86ぐらいまで?
172:Name_Not_Found
08/04/16 19:07:50
よく分からないけど、ID出ないから
今度から名前欄に自分が最初にレスしたレス番号入れたらどうでっしゃろ?
173:edry(えどりぃ)
08/04/16 23:35:10
>>164
おまいが >>140 であり、>>147-148 に apache_allowjp.txt 追記したんだなと思うわ。
注意として、apache_allowjp.txt の order や deny の行は追記対象としちゃだめよ。
で、.htaccess の負荷について理解したいなら、>>74-77 が参考になるけど、
URLリンク(httpd.apache.org) ぐらいは読もう。
全てを理解するなんてのは私もできてませんけど、ちゃんと読めば大体分かる。
質問の件は、(A)のアクセス制御はサブディレクトリすべてに適用されるから、
同じものを置く必要はない。けど、サブディレクトリに置いた .htaccess で
設定は上書きできるので注意が必要ということ。
(A)でBASIC認証の記述が無いなら(C)は必要で、(C)にはBASIC認証の設定書く。
でも、そのロボット避けは(A)の Deny で十分じゃないかな?
わざわざBASIC認証を使う理由があるのか疑問が残るけど、当然のことながら
(A)のサブディレクトリにある(C)にアクセスする際は、(A)+(C)を処理するし、
(A)だけよりは負荷が高くなる。
起こりえる問題は、 URLリンク(httpd.apache.org)
だから(A)だけ使用して、BASIC認証を使用しないのが負荷が少ないと思われ。
とりあえず、(A)は試した?
"案ずるより産むが易し"とも言うけど、そもそも(A)で問題がないか、負荷が
どれくらいかを見るべきだと思う。それで負荷高くてダメな場合はそれ以上
できないわけだし。
174:Name_Not_Found
08/04/17 00:24:56
>>171
質問する人以上に回答する人がいても無駄が多くなるから
>>86以降は様子見モードに切り替えることにしたわぁ。
175:Name_Not_Found
08/04/17 01:03:54
>>174
時々出てきてくれないと寂しいです!><(いや、けっこーマジで)
176:Name_Not_Found
08/04/17 05:43:49
ヽ
_,,.,、、,.ィ-- ti- 、、、....,,,,_ ',
,,..、、ri':'゙/~ レ ' ゙ヘ:l : : : :~,>
_,...r:::''"::/ l/ .l:/-=ニ二,'_ー- 、、 !l!;: r '"
'''<:::::::::::::;、r' `'' ‐-`.、 /
-、 l::::::::::::l <"゙'i;ソ' ',
~.ヽ l:::::::::::l ~' '、
/ .) .l::::::::::! '、
ヽ .l:!l:::::l ヽ '、
\ ' l! l::!l! ヽ ,'
゙ ヾ ‐'" ,. r ゙
ー-‐i ,.r,,iilll鬚髯ヲ そんなに何も見えてないんじゃ
. l `''' ‐‐ ---t‐'
 ̄ ̄ ̄ ̄ ̄ ̄~"''、' ‐ 、 ー‐ノ 生きてても面白くないでしょう
', ヽ l
l l l
l l ノ
177:Name_Not_Found
08/04/18 11:48:04
変なコテより断然中身が適切な>>174が必要なんです!
178:1
08/04/18 14:14:35
>>172案に従ってみたらこんな名前になるのが嫌です。
>>171
無駄に腰が低いらしき人です。(ですぅ|わぁ)さんが召喚されるのはわかるんですけど、なんで自分が。
>>83-86なやりとり(かなり動揺しながら試しました)のあとは、>>103と>>135だけですね。
>>135へのレス見て「いえ、お客さんはめんどくさい知識不要というのを言いたくて…」と
思ったけど自分にはよくわかんない流れになってるっぽいので、傍観者モード。
まとめサイト云々の話で、昔のことを思い出しました。
.htaccess質問コーナー Part4
スレリンク(hp板:628-651番)
179:Name_Not_Found
08/04/18 15:20:06
>RewriteEngine on
>RewriteRule ^(.*/)$ himmel/sora.php?id=/$1
>RewriteRule ^$ himmel/sora.php?id=/
どなたかこのコードを日本語に翻訳してください・・・。
180:Name_Not_Found
08/04/18 15:28:32
>>179
リライトエンジンおん
以下次号
181:Name_Not_Found
08/04/18 17:09:21
.htaccessなのかわからないのですが、
教えてください。
.htaccessでできないのなら、誘導していただけると助かります。
直リンクはOK 直接呼び出しNGという事は可能でしょうか?
私のサイトが
URLリンク(abc.jp)だとして
他のサイトの人がURLリンク(xwy.net)だとします。
このサイトの人が
<img src="URLリンク(abc.jp)" alt="">というタグを書き自分のサーバーに
アップした時は、画像を表示させたい。
でも、
ブラウザで
URLリンク(abc.jp)
っと呼び出したときは、エラーにしたいんです。
可能でしょうか?
182:Name_Not_Found
08/04/18 17:38:40
>>181
テンプレ>>3 の 【例示用ドメインについて】 にも記載しているとおり、
例に挙げただけでも、過去・現在・未来に存在する可能性があるため、
質問/回答時の例として使うドメインは、例示用として予約されている
example.com、example.net、example.org、example.jp などを使いましょう
これに好きなサブドメインをつけて説明するのは OK です
例) hoge.example.com
以上のことに注意しつつ質問や回答するよう次回から心がけましょう
183:181
08/04/18 17:44:12
>>182
申し訳ありませんでした。
引き続きわかる方がいらっしゃいましたら、お願いします。
184:109
08/04/18 21:17:06
確かにRewriteCondを使ったらブラウザごとに違うURIを出力できるみたいだけれど、
俺がやりたいのはコンテントネゴシエーションをしている場合のことで、
出力するURIが同一でファイルはブラウザごとに振り分けたいんだ。
具体例を出せば、URLリンク(kuruman.org)になる。
これ、普段はXMLを出力しているけれど、IEのときに限ってHTMLを出力しているんだよね。
URIはどちらも全く同じなのに。
これってどう設定しているのかな?
185:Name_Not_Found
08/04/18 21:36:52
>>184
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} MSIE
RewriteRule latest$ - [G,L]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5\.0
RewriteRule latest$ /latest.html [L]
RewriteCond %{HTTP_USER_AGENT} (baidu|naver|spider) [NC]
RewriteRule latest$ /atom.xml [L]
186:Name_Not_Found
08/04/18 21:38:24
mod_rewriteについてすごく詳しく分かりやすく書かれたページを発見したんで、報告しとく。
URLリンク(tech.bayashi.jp)
187:Name_Not_Found
08/04/18 22:27:00
>>184
RewriteCond %{HTTP_USER_AGENT} MSIE
RewriteRule !^(MSIE.*)$ /MSIE/$1 [QSA,L]
でどうだ?
UserAgentにMSIEが含まれるときだけ、/MSIE/以下を表示する。
それ以外はそのまま。
検証はしてないので、動かなかったら勘弁な。
188:Name_Not_Found
08/04/18 22:35:38
>>187
自己レス
RewriteRule !^(MSIE.*)$ /MSIE/$1 [QSA,L]
がおかしいね。
RewriteRule !^MSIE/(.*)$ /MSIE/$1 [QSA,L]
かなあ?
189:edry(えどりぃ)
08/04/19 16:17:55
>>179
>>180 の第二号
URLの任意の文字0個以上と最後の/で終わるところまでを記憶し → himmel/sora.php?id=/"先ほど記憶したURLをここに展開" に書き換える。
以下次号
190:Name_Not_Found
08/04/21 14:55:44 KpnK4ald
php_flag display_errors On
AddType "text/html; charset=UTF-8" html
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z\_]+)/([0-9a-zA-Z\_]+)\.html$ mod_rewrite.php?var1=$1&var2=$2 [L]
と書きましたが、うまく表示できません。
RewriteRule の部分以外は、動作するので、RewriteRuleの構文が間違っているのでしょうか?
【サーバーの状態】
エンコード:UTF-8
191:Name_Not_Found
08/04/21 15:08:00
教えて君でごめんなさい。
中国、台湾、韓国を弾く設定と
refererがないとアクセスできない設定は書けたのですが、
両方を満たす.htaccessが書けません。
検索のヒントでも教えてもらえたら嬉しいです。
192:Name_Not_Found
08/04/21 15:18:55
>>191
.htaccessに何を書いたかを出さないとコメントしようがないと思うが
193:Name_Not_Found
08/04/21 15:20:40
>>190
rewrite_logを見たら、ヒントがあるかもね
194:Name_Not_Found
08/04/21 15:45:35
>>192
SetEnvIf Referer "^ドメイン名" ref_ok
order deny,allow
deny from all
allow from env=ref_ok
order allow,deny
allow from all
deny from .ca
deny from .fr
すいません、すいません。これは例ですが、
これを一緒に書くにはどうしたらいいでしょうか?
195:Name_Not_Found
08/04/21 15:53:11
>>190
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)\.html$ /info.php?var1=$1&var2=$2 [R,L]
# R(=302) つけたのは見た目をわかりやすくするだけ。
これで "/存在しないディレクトリ/存在しない.html" を叩いたらリダイレクトしてくれたし
R 抜いても /info.php?var1=$1&var2=$2 が出る。
196:Name_Not_Found
08/04/21 16:09:17
>>194
SetEnvIf Referer "^ドメイン名" ref_ok
Order Deny,Allow
Deny from .jp
Allow from env=ref_ok
Allow from .cn
Allow from .tw
Allow from .kr
197:196
08/04/21 16:11:45
ていせい。
たぶん ref_ok && denied host も deny したいだろうから、こっちの Order で。
SetEnvIf Referer "^ドメイン名" ref_ok
Order Allow,Deny
Allow from env=ref_ok
Allow from .cn
Allow from .tw
Allow from .kr
Deny from .jp
198:Name_Not_Found
08/04/21 16:17:57
>>194
下のallow from allで、それまでの設定が全てチャラになるよ
199:edry(えどりぃ)
08/04/21 16:31:22
>>181
> 直リンクはOK 直接呼び出しNGという事は可能でしょうか?
許可 = リファラが空でない = 直リンク
拒否 = リファラが空である = 直接呼び出し
と仮定するなら、リファラが空の時はアクセスを許可しないようにすればOKかと。
.htaccess
─────
Order Deny,Allow
SetEnvif Referer "^$" ref_ng
deny from env=ref_ng
# 1: Deny を先に評価し、Allow を後に評価する設定。デフォルトはすべて許可となる。
# 2: リファラが空なら、ref_ng を定義する。
# 3: ref_ng が定義されているときはアクセスを拒否する。
─────
200:Name_Not_Found
08/04/21 16:47:24
>>199
質問者がそれを doc_root に置きそうなことまで考えて
<Files> 使うぐらいのエスパーカ(えすぱーか)はあったほうがいいと思う。
201:Name_Not_Found
08/04/21 16:56:56
>>197
ああ、そうなんですね。
ありがとうございます。
早速試してみます!
202:edry(えどりぃ)
08/04/22 00:35:39
>>200
直リンクはOK 直接呼び出しNG とする理由次第かな。
逆のことをやりたいという状況はよくあると思いますが、今回の内容は初めてなので、
とりあえず、可能かどうかを知りたくて .htaccess で実現ができるかを質問してる
ことから、どのように実現できるかに絞って書いてみました。
魚と釣り方のどちらを求めているのかにもよりますが、魚なら >>148 のとき同様に
拡張子で対象を絞れるように追加で示せば足りますが、釣り方なら混乱を避ける為に
最小限の方法を示すことが理解が容易になると考えました。
深読みが過ぎるかなとは思いましたが、画像サーバーと考えたときに、質問者が魚を
求めていて書かれたものをそのまま使うと、余計な記述は負荷にしかならないので、
最小限の記述にしたという背景もあったりします。
さらに深読みが過ぎるかなとは思いましたが、直リンクを許可したいサイトを特定の
ものとしたいとか(ry
不毛になりそうなんで。>>150 な感じです。
203:Name_Not_Found
08/04/22 07:36:58
画像やFlashファイルに対してなら直呼びNGにしてる
h抜きとかで画像貼られると転送量が無駄に浪費するんで
空リファラ弾いとけばhttp://で貼られようがhttp://で貼られようが403
204:Name_Not_Found
08/04/22 12:45:45 1aCMAoDZ
58.14.1.2の場合は
RewriteCond %{REMOTE_ADDR} ^\58\.14\.1\.2 [NC,OR]
と書くことができますが
58.14.0.0/15
の場合どうかけばいいのでしょうか?
205:Name_Not_Found
08/04/22 14:45:59
>>15
kwsk
206:Name_Not_Found
08/04/22 18:01:09
^58\.1[45]\.
207:edry(えどりぃ)
08/04/22 23:38:00
>>184 ( >>109 )
とりあえず、>>184 で示したサイトでやっていることは、
シンプルなコンテントネゴシエーションだと思われ。
latest.html = text/html
latest.xhtml = application/xhtml+xml
とかがあって、ユーザーエージェントの Accept などにより最適なものを選択して
返しているだけだろうから、コンテントネゴシエーションを利用できる環境があって
試したいなら、xhtml の文書を sample.xhtml で、html の文書を sample.html で、
同じところにおいて、ファイル名 sample でアクセスすれば確かめられる。
Firefox/2.0.0.13
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
IE/6
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*
Firefox だと application/xhtml+xml が text/html よりも優先され .xhtml が返される。
IE だとワイルドカードで */* となっているので、Apache ネゴシエーションアルゴリズムの
2-4 で最高レベルのメディアパラメータ(text/html)を持つ .html が返されるのだと思う。
とりあえず、localhost で実際に試すと期待したとおりの結果になったよ。
拡張子を .xhtml と .html で分けとけば、大抵は Apache のデフォルトで上手く行く気がする。
コンテントネゴシエーション
URLリンク(httpd.apache.org)
Apache モジュール mod_negotiation
URLリンク(httpd.apache.org)
208:edry(えどりぃ)
08/04/23 09:40:27
>>207
訂正と補足。
> とりあえず、localhost で実際に試すと期待したとおりの結果になったよ。
試したのは localhost ではなく、さくらインターネットでした。Apache/1.3.39 (Unix)
> 拡張子を .xhtml と .html で分けとけば、大抵は Apache のデフォルトで上手く行く気がする。
デフォルトってのは MIME タイプのマップのことです。
↓こういう関連付け。
> latest.html = text/html
> latest.xhtml = application/xhtml+xml
デフォルト(または試した環境)で上手く行かない場合は、AddType ディレクティブ
でマップすればOKかと。
AddType text/html .html
AddType application/xhtml+xml .xhtml
209:Name_Not_Found
08/04/25 11:01:43
HTTP_RANGEにbytes=0-1048575という環境変数を吐くスパムロボットがあるのですが
何か規制する方法はないでしょうか?他の環境変数はIEと全く同じで、
普通の投稿者と違うところは、ホストが毎回変わることと海外のホストであることくらいです。
>>2のSetEnvIfには、HTTP_RANGEは、
使用できなさそうなことがあったのですが一応試してみました。
特に何の影響もなくすり抜けてきます。
今のところはCGI側で弾いているのですが、
それではどうしても負荷が余計にかかってしまい、
アクセスログにも残ってしまうのでとても迷惑しています。
試してみた.htaccessです。
一番上のOpera海外版を偽装したスパムは弾けていますが、2~4番目はどれも無反応です。
SetEnvIf User-Agent "^Opera/9\.0 \(Windows NT 5\.1; U; en\)" deny_ua
SetEnvIf HTTP_RANGE . deny_env
SetEnvIf HTTP_RANGE "1048575" deny_env
SetEnvIf Http-Range "1048575" deny_env
order allow,deny
allow from all
deny from env=deny_ua
deny from env=deny_env
使用サーバーはさくらインターネットのプレミアムです。
日本以外のホストを弾くと言うことも出来るのですが、
海外から来ている日本人ユーザーが結構いるので規制できないで居ます。
210:Name_Not_Found
08/04/25 13:28:24 3P1p33XL
中国からの全ipを規制したいけど
何か効率のいい方法ないのかな?
ip1つづつをdenyしてるとhtaccessがすごい行になるんだけど
211:Name_Not_Found
08/04/25 14:18:18
deny from chankoro
212:edry(えどりぃ)
08/04/25 22:26:09
>>209
CGI の環境変数を .htaccess で使おうとしてませんか。
おそらく試した .htaccess の2~4番目は不要です。
SetEnvIf Range "^bytes=0-1048575$" deny_env
でマッチすると思いますので試してみてください。
213:Name_Not_Found
08/04/27 19:05:01 Cdj2fWG/
RewriteEngine on
RewriteCond %{REMOTE_HOST} \.or\.jp$ [NC]
RewriteRule ^.*$ /test.html [R=301,L]
としてますがスルーされます。
REMOTE_ADDRでipを指定した場合はうまく規制できています。
何が原因なんでしょうか?
214:Name_Not_Found
08/04/27 19:43:30
>>213
HostnameLookups Off
じゃね?
215:Name_Not_Found
08/04/27 19:56:52 Cdj2fWG/
レスありがとう。
httpd.confですか。レンタル鯖なのでoffされていると無理ですね。
danyで対処するようにします。
RewriteRule ^.*$ /test.html [R=301,L]
のように規制対象を任意のアドレスへdanyだと無理なんですよね。
403と連続アクセスされるとやられっぱなしなので127.0.0.1なんかに飛ばしたいんだけど。
dany でリモホを規制するかREMOTE_ADDRでこまめにipを規制するようにします。
お騒がせしました。#中国からのアクセスを国側でどうにか規制してほしいものです・・・
216:Name_Not_Found
08/04/27 20:12:09
>>215
dany......w
217:Name_Not_Found
08/04/27 22:23:16
んなめどいことやらんでもソースに<!--天安門事件-->で終了
218:Name_Not_Found
08/04/27 22:44:10
>>217
天才現るw
219:Name_Not_Found
08/04/28 17:50:57 psY/2XFv
ハ,,ハ 僕、アルバイトォォ!!
('(゚∀゚∩_ 僕をどこかのスレに送って!
/ヽ 〈/\ お別れの時にはお土産を持たせてね!
/| ̄ ̄ ̄|.\/
| モツ煮 |/
 ̄ ̄ ̄
現在の所持品:新聞、∈(・ω・)∋ダムー、ゆうパック、ダム穴、百度
220:Name_Not_Found
08/04/29 21:25:56 sS5y1L8c
超初心者ですがお願いします。
HPじゃなくて、ブログ(それも無料ブログ)で.htaccessを使って
特定のIPアドレスを制限することは可能ですか?
221:Name_Not_Found
08/04/29 21:35:27 ac7HHgMU
>>220
超初心者用スレではないにでスレ違い
222:Name_Not_Found
08/04/29 21:42:17 sS5y1L8c
そうですね・・・
でも、できれば教えてもらえませんか?
223:Name_Not_Found
08/04/29 22:01:39
>>222
あなたが借りているのはどこですか?
224:Name_Not_Found
08/04/29 22:05:47 ac7HHgMU
まずは人に聞く前に自分で調べる癖をつけましょう。
せっかくインターネットに繋がっていて2chだけしか利用しないのはもったいない。
君の文章から得られるキーワードは「htaccess IPアドレス 制限」
それから得られる情報は日本のサイトだけでもhtaccess IPアドレス 制限 に一致する日本語のページ 約 643,000 件
こんなにもあります。ここで聞くより643,000 件の中から自分で情報を探す方が君にとって有意義です。
その上で理解出来ない部分なんかがある場合にここなどで聞くとさらに知識が深まるのです。
225:Name_Not_Found
08/04/29 22:06:25
WEBに公開している以上「完全」に制限することは不可能だと常に覚えておいて下さい
226:Name_Not_Found
08/04/29 22:27:10 sS5y1L8c
みなさんヒント色々ありがとうございます。
htaccessでIPアドレスを制限する事に関するページはたくさんありますね。
ただ、初心者すぎて、HPじゃなくてブログでもそれができるかわからなかったんですが
ブログでも可能のようですね。
なんとかやってみたいと思います。
227:Name_Not_Found
08/04/30 01:00:39
>>212
規制されていて返答遅くなりました。
CGIの環境変数と.htaccessの環境変数は別なのですね。勉強になりました。
SetEnvIf Range "^bytes=0-1048575$" deny_env
で設定してマッチ出来たようです。
お陰でスパムの9割を規制できました。有り難うございました。
228:Name_Not_Found
08/04/30 01:05:57
>>226
普通に借りるようなレンタル形式のブログじゃできないよ
ってみんな教えてあげないとw
229:Name_Not_Found
08/04/30 01:56:17
自分で借りてるところのヘルプ見りゃ済むのにそれもしないし
じゃあ、どこなら出来ますか?とか聞かれるのがオチだろ
230:Name_Not_Found
08/04/30 02:08:36
そーゆー時はブログ系のスレに誘導して終了w
231:Name_Not_Found
08/04/30 02:14:26 Ah742n5q
ブログなんかで何かしようと思うのが間違い
232:Name_Not_Found
08/04/30 07:59:08
バカにされたー
どうせバカだけど
233:Name_Not_Found
08/04/30 12:40:59
ここまで while による自演
234:Name_Not_Found
08/04/30 21:01:15 He7sahYB
質問させて下さい。
携帯の特定の1機種(W54T)からのアクセスのみを弾きたいのですが、
その場合はどのように記述すればいいでしょうか?
ぐぐったところ
BrowserMatch "DoCoMo/1\.0/SO503i/c10" DoCoMo_SO
Order Allow,Deny
Allow from all
Deny from env=DoCoMo_SO
という特定機種を弾くらしい記述と
W54TのデバイスIDは「TS3E」
が出てきたので、これを利用して書き換えればいいのかと思っても
どこをどう書きかえればいいのか解りません。
自分の機種を参考に適当な書き換えも試してみましたがアクセスできてしましました。
使用サーバーはさくらです。
よろしくお願い致します。
235:Name_Not_Found
08/04/30 21:57:57
>>234
BrowserMatch のところを書き換えればいいじゃねーか
236:234
08/04/30 22:17:52
>>235
ご指摘通り、
BrowserMatch "TS3E" au_CA
Order Allow,Deny
Allow from all
Deny from env=au_CA
にしてみたら弾けました。
"DoCoMo/1\.0/SO503i/c10" のように機種番号の前後に何かいるものだとばかり……
こんなに単純だったとは orz
お手数をおかけしてすみません。本当にありがとうございました!
237:edry(えどりぃ)
08/04/30 23:30:26
>>135
> (allow|deny) from all を教えて Order で「原則(許可|拒否)」が変わることを教えない
> 解説サイトが多いのは謎ですが。
なんか最近、同じ疑問を持ったw
deny from example.com
allow from example.com
deny from example.com
これ上から順に試したとき、最後に書いたものが機能しないと悩むとか。
だから、
Order deny,allow
Deny from all
Allow from all
たぶん、こうした方が Order が何やっているか分かりやすいのかな。
238:164
08/05/03 19:06:10
>>164です
お礼が遅くなってすみません
>>165,173
この板には初めてきたので人違いだと思います
(A)~(C)は1年以上前から設置してあるのですが、最近になって
(C)のディレクトリに対するIP制限が効いていないらしいことに気付きました。
((A)には串避けの記述もしてあるのですが、その串で(C)にアクセスできてしまったので)
それで今のままでは穴があるのでは…と心配になり質問をさせていただいた次第です。
とりあえず>>173さんが示して下さったページを熟読し、それでも不明な場合は
またお邪魔させていただこうと思います。
レスありがとうございました。
239:Name_Not_Found
08/05/03 21:13:47
>>238
次回質問することがある時は、トリップをつければよいと思いますよ
240:Name_Not_Found
08/05/05 13:21:27
botと日本語環境以外のアクセスを弾きたいのですが、以下の記述で合ってますでしょうか?
鯖はさくらです。
SetEnvIf Referer "^URLリンク(example\.ne\.jp)" welcome
SetEnvIf Referer "^$" welcome
SetEnvif Accept-Language "ja" Accept_Langage_ja
Allow from env=Accept_Langage_ja
SetEnvIf User-Agent "Googlebot" shutout
SetEnvIf User-Agent "Slurp" shutout
SetEnvIf User-Agent "msnbot" shutout
SetEnvIf User-Agent "spider" shutout
Order Allow,Deny
Allow from all
以下、企業や役所等のドメインが続きます
Deny from env=shutout
241:edry(えどりぃ)
08/05/07 10:24:40
>>240
> Allow from all
これがあるため、日本語環境でははないものも許可しちゃいます。
あと、welcome は許可設定しないの?
242:Name_Not_Found
08/05/07 11:37:03 /tfusj0l
正直どこをどう弄れば良いのかサッパリ
この構文も元々はrobotとドメイン弾きの例文を改造した奴なんです
SetEnvIf Referer "^URLリンク(example\.ne\.jp)" welcome
SetEnvIf Referer "^$" welcome
SetEnvif Accept-Language "ja" Accept_Langage_ja
SetEnvIf User-Agent "Googlebot" shutout
SetEnvIf User-Agent "Slurp" shutout
SetEnvIf User-Agent "msnbot" shutout
SetEnvIf User-Agent "spider" shutout
Order Allow,Deny
以下、企業や役所等のドメイン
Allow from env=welcome
Allow from env=Accept_Langage_ja
Deny from env=shutout
と書き換えてみましたが如何でしょうか?
243:240
08/05/07 11:38:33 /tfusj0l
>>240=>>242でした
244:edry(えどりぃ)
08/05/08 00:50:17
>>242 (= >>240 = >>243)
Order Allow,Deny の行が Allow と Deny の評価される順を決め、
その上でデフォルトの状態(この場合は Deny from all となる)が決まります。
URLリンク(httpd.apache.org)
今回は、Allow で許可したいものをまずは列挙し、その中で拒否したいものが
あれば Deny で拒否する感じになると思います。
ただ、Allow の許可はひとつを見れば目的を果たすことができますが、
複数の設定があると目的を果たせない場合があります。
> SetEnvif Accept-Language "ja" Accept_Langage_ja
これだけ見れば、日本語を利用するユーザーエージェント"のみ"を許可しようとしてる、
〉SetEnvIf Referer "^$" welcome
でも、これがあるから日本語を利用するかに関係なく、リファラが空なら許可する。
Allow での許可が or なので、どれか一つの条件が合えば許可することになります。
つぎはぎ的な内容とうことであれば、welcome のやつは特に意図があったわけでは
ないということですね。ならば、次の行は不要。
〉SetEnvIf Referer "^URLリンク(example\.ne\.jp)" welcome
> SetEnvIf Referer "^$" welcome
> Allow from env=welcome
また、ロボットを弾くのも、デフォルトが Deny from all で全て拒否してる
ことから、Allow で許可した中にロボットがあった場合に Deny で拒否すれば
いいと思いますので、初めは次の三行だけで様子を見てはいかがでしょうか。
SetEnvif Accept-Language "ja" Accept_Langage_ja
Order Allow,Deny
Allow from env=Accept_Langage_ja