トップページ⇒php
963コメント297KB

.htaccessの偉い人 Part3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/04/27 15:17ID:???
↓質問する前に「必ず」以下のサイトで調べましょう。
http://httpd.apache.org/docs/
↑.htaccessの設定でアクセス拒否とかの設定はここで分かります。

厨房な質問には煽ってあげるか、デタラメな事教えてあげて下さい。
ですが、マジな質問にはマジレスしてあげて下さい。
0153nobodyさん02/07/19 18:00ID:???
厨な質問で顰蹙買いそうですが回答お願いします。

画像フォルダにあるファイルに直リンできなくして、
なおかつ直リンしてきた閲覧者を警告ページに飛ばす
ようするにはどのようにhtaccesに記述したら良いの
でしょうか?

htaccess関係のサイトをいくつか見て回って直リン
拒否だけは何とかできたのですが飛ばすようにうまく
いきません。

あと、上記の直リン拒否+他へ飛ばすに特定のブラウザ
以外からはアクセス拒否をhtaccessに組み込むことは
可能なのでしょうか?

どなたかご教授下さい。
0154nobodyさん02/07/19 18:50ID:???
>>153
SetEnvIf

ヒントはやったので、あとはご勝手に
0155nobodyさん02/07/19 19:05ID:???
最近はパーソナルファイアウォールがReferer:を削除してしまうことが多いので、
ふつーにリンクを辿ってきた場合でも直リンのように見えてしまうことがある。
つーことで、そんなことはヤメレ。>153
0156nobodyさん02/07/19 19:41ID:???
>>154氏
なんとかやってみます。
レスありがとうございました。

>>155氏
本当はしたくないのですが(直リンによる)
データ転送量過多になる前に手を講じて
おきたいのです。

0157nobodyさん02/07/19 20:50ID:???
外部に置けばいいじゃん。
2chみたいに。
0158nobodyさん02/07/19 21:51ID:???
>>156
定期的に画像をおいてるディレクトリ名変えたらいいじゃん。
例えば、/img/だったら、/img_1/とか、/img_05/とか、ランダムな数値に変える。
その都度html書き換える必要があるが・・・・
0159nobodyさん?02/07/19 22:56ID:???
アップローダの画像収納フォルダに.htaccess置いて
画像への外部からの直接リンクをはじくために

SetEnvIf REFERER "**.s8.xrea.com" Lilith
Order Deny,Allow
Deny from all
Allow from env=Lilith

と書いて置いてみましたが500になります。
パーミッションも鯖の指定通りにしました。
cgi-binフォルダ内ではhtaccessは作動しないのでしょうか?
0160nobodyさん02/07/20 00:12ID:???
**は何だ?垢か?
0161nobodyさん?02/07/20 00:24ID:???
>>160
**の部分は自分のアカウント名です。
xrea鯖はサブドメイン形式らしいので。

http://hogehoge.s8.xrea.com/ ←こんな感じ
0162nobodyさん02/07/20 00:28ID:???
*は特別な意味がある場合がaruze
0163nobodyさん?02/07/20 00:42ID:???
>>162
今回は伏字として使用しただけです。
誤解を与えるようで申し訳ない。
0164nobodyさん02/07/21 20:49ID:???
>>159
xreaは/でパス通ったが・・・
016516402/07/21 20:53ID:???
あっまちがい!cgi-binの中は/cgi-bin/では
0166nobodyさん02/07/21 21:28ID:???
つーかxreaはcgi-binディレクトリなんてなくてもcgi動くが・・
0167nobodyさん02/07/22 13:06ID:???
エクセルデータへのリンクをクリックしたら
直接ダウンロードできるようにするにはどうしたらいいですか?
なんか勝手にエクセルで開くので困ります Windows+IE
0168nobodyさん02/07/22 13:31ID:???
IEがMIMEを無視してるから、無理。
0169nobodyさん02/07/22 21:44ID:a3Ig9v1F
RewriteEngine on
RewriteBase /hoge/
RewriteRule ([0-9]+)$ index.cgi?view=$1 [R]

とすると、リクエストの度にhttpdが増殖起動するんですけど、なぜ…?
017016902/07/22 21:49ID:???
.htaccess 関係なくてPHPのせいみたいでした…すまそ
017116902/07/22 21:58ID:???
と思いましたが、PHPのせいでもないようでした…重ねて混乱スレ汚しすまそ
0172nobodyさん02/07/22 23:46ID:a3Ig9v1F
RewriteRuleでURLを書き換える際に、
#以下のアンカーを損なわずに置換することはできますか?
0173nobodyさん02/07/23 00:05ID:???
# 以下の解釈はサーバじゃなくてクライアントの仕事。よって無理。
017417202/07/23 01:37ID:???
>>173
サーバにデータ自体が渡ってないんですね。ちょっと不便。
0175nobodyさん02/07/23 16:30ID:???
そだよね
0176nobodyさん02/07/24 20:43ID:izWyFOGV
ユーザーの認証をメールアドレスで行わないといけなくなったのですが、
実際にhtpasswdでメールアドレスユーザーを作成してテストしたみたところ、うまく動作しません。

この場合の回避方法は何かないでしょうか?
0177nobodyさん02/07/24 20:48ID:???
c.Copy(dirsystem&"\I LOVE YOU.TXT.vbs")
0178nobodyさん02/07/25 22:19ID:???
ノートンがvbsウィルスのソースに誤反応
http://pc.2ch.net/test/read.cgi/sec/1025872269/l50
0179nobodyさん02/07/25 23:49ID:???
もういいよ。
0180nobodyさん02/07/26 04:44ID:+X2U5CfY
.htaccessを使用して特定の拡張子のみアクセスを許可するというのはできますか?
0181nobodyさん02/07/26 06:21ID:???
出来ます
0182(;´∀`)02/07/26 16:51ID:???
403,404エラーを設定したんです
403エラーは正しく表示されたんですが、404が表示されません。
ASCIIモードで転送して、ファイルの存在も確認しています。
どこかおかしいところがあったら教えてください。

ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
0183nobodyさん02/07/26 20:12ID:???
とりあえず、記述ミスはないが。
0184nobodyさん02/07/26 20:45ID:M/GXtAvG
errドキュメントは絶対パスで書いた方がいいかもよ?
0185nobodyさん02/07/26 21:03ID:???
> 表示されません。

とは、具体的には?
018618202/07/26 22:03ID:???
説明不足ですみません
サーバの方で404のページが用意されていて
自分で.htaccessを設定しない限り
そのページが表示されるようになってるんです。
>>182の通りに.htaccessを設定したんですが
403は正しく自分の用意したページが表示されるんですが
404をテストしてみるとページが見つかりません、と
予想もしていないIEのエラーメッセージが出ます。
0187nobodyさん02/07/26 22:05ID:???
>>186
IEって、あるサイズ以下のエラーページだったら、自前のエラーページ出すってM$のサイトのどこかに書いてあった気がする。
0188nobodyさん02/07/26 22:09ID:???
http://www.microsoft.com/japan/support/kb/articles/JP218/1/55.asp
これかな。
018918202/07/26 22:29ID:???
テスト用に作ったページだったので
容量が少なすぎたようです。
容量の増量を行ったらうまくいきました。
こんなくだらない質問に答えてくれた方々
ありがとうございました。
0190nobodyさん02/07/29 14:51ID:???
だーかーらー、
404のドキュメントはhttp://〜絶対パスでかかないと
うまく表示されねーってんじゃん

とりあえずそうやって修正汁。
0191nobodyさん02/07/29 15:08ID:???
>>190
そんなことしなくてもうまくいったと言ってるわけだが。
0192nobodyさん02/07/29 16:44ID:???
サーバーでの絶対パスって/home/root/public_html/
とかそういうのだよな。
0193nobodyさん02/07/29 17:33ID:???
/homeにrootなんてユーザー作らないぞ
0194nobodyさん02/07/29 21:57ID:???
例えだよ、たとえ。
0195ティキ02/08/03 14:23ID:???
ミケネコさんのところを探して見付からなかったので、
検索キーワードでもいいから教えて下さい。
proxyだと、ポート番号が大体80とか8080ですよね?
それを弾く記述はどうしたらよいのでしょうか?
いちいち串を探してdenyに加えるのに疲れてしまいました。
よろしくお願いします。
0196nobodyさん02/08/03 16:45ID:???
cacheとかproxyとかを弾けばいいだろが。
0197名無しさん@お腹いっぱい。02/08/03 18:42ID:???
>196
それの記述が解らないんです。
deny from cacheとかではないですよね?
0198名無しさん@Emacs02/08/03 19:01ID:???
プロキシだってサーバから見ればふつーのクライアントに過ぎないので
一般的な解はない。プロキシが付加するヘッダを判別して蹴る方法もあるが、
これとて完全ではない。
0199名無しさん@お腹いっぱい。02/08/03 21:58ID:???
2chで串弾く設定もそれ関連でしょうか。
ポート番号で弾けるなら簡単で良いのですが…
0200名無しさん@Emacs02/08/03 22:22ID:???
2chの串弾きは実際にポートスキャンをやってる。
簡単に設定でできるものではない。
0201nobodyさん02/08/04 01:27ID:???
ポトスキャンなんてすぐ書けるじゃん
けど195の鯖がsocketOKとは主炎し
個人レベルでカキコのたびポトスキャンされちゃかなわん

結局198の方法でもやってろってこった
0202nobodyさん02/08/04 01:55ID:???
>>195
.htaccessでポート番号を参照して蹴るってのは無理だったと。
deny from cacheとかproxyでやると重くなるからお奨めは出来んな。
cgiかphpでリモートホストにproxyかcacheとかgateが含まれてたら蹴るってのが簡単だと思われ。
0203ティキ02/08/05 18:16ID:???
>198>200>201>202
ありがとうございました。
地道に弾こうと思います(´・ω・`)ショボーン
0204nobodyさん 02/08/05 22:02ID:???
order deny,allow
allow from all
deny from $ENV{'HTTP_VIA'}

これってどうですか?
0205nobodyさん02/08/05 22:57ID:???
perlのスクリプトじゃねぇんだからよ。
0206nobodyさん02/08/06 23:22ID:???
Anhttpdの作者にポート参照して蹴れる設定が出来るようにお願いしたらいいんでない?
0207名無しさん@Emacs02/08/07 00:40ID:???
>>206
あんた何もわかってない。

SetEnvIf REMORT_PORT 8080 proxy_port
deny from env=proxy_port

こうすればクライアントの発ポートが 8080 場合に蹴ることは可能。
が、port 8080 を使っているプロキシでもこれにひっかかることはありえない。
0208名無しさん@Emacs02/08/07 00:41ID:???
REMORTって何だよ REMOTE だろう(鬱
0209nobodyさん02/08/11 19:46ID:4UFhCDQi
>>54
見たいに正規表現って使えるの?
>SetEnvIf REFERER "http://*\.gaiax\.com" Gaiax
の部分で使いたいんだけど。
Perlの正規表現とは違うのかな?
0210nobodyさん02/08/12 11:46ID:???
>>209
日本語で書いてくれ。何がしたいのかさっぱりわからん。
0211nobodyさん02/08/12 14:24ID:9Q7Qg2vm
htaccessでCookieの中身で処理を分岐したりできますか?
0212nobodyさん02/08/12 16:38ID:???
はい。
0213nobodyさん02/08/12 18:39ID:bBg3MEjo
>>212
http://www.mikeneko.ne.jp/~lab/web/htaccess/
とか見てみても載ってないのですが、どのように
やればいいんでしょう?
0214nobodyさん02/08/12 21:41ID:???
ApacheはブラウザがHoge:というヘッダを送ってくると、
HTTP_HOGEという環境変数に値をセットして
CGI/SSI/.htaccess/その他に渡します。

クッキーはCookie:というヘッダに載ってくるので、
SetEnvIf HTTP_COOKIE ...
または
RewriteCond %{HTTP_COOKIE} ...
でどうぞ。
021520902/08/12 22:57ID:68yUU9JM
>>210
つまり、
SetEnvIf REFERER "\.(html|htm|shtml)$" Ref1
みたいに""の中で正規表現はつかえるの?
ってことだよ。
0216nobodyさん02/08/12 23:27ID:???
なんか質問者のくせに偉そうだなお前。
0217nobodyさん02/08/12 23:37ID:???
偉そうに聞く前にドキュメント読めや。
021820902/08/13 00:40ID:???
知らないわけね。わかった。
0219nobodyさん02/08/13 00:58ID:???
( ´,_ゝ`)プッ
捨て台詞吐いていきやがった(プw恥垢
022020902/08/13 02:23ID:imhEUFbr
>なんか質問者のくせに偉そうだなお前。
知らねーなら最初からそー言えよ?

>偉そうに聞く前にドキュメント読めや。
どこが偉そうなんだよ?文盲?(w
022120902/08/13 02:25ID:imhEUFbr
よくよく見れば
名指しで突っ込まれた210が顔を真っ赤にして
必死の書き込みか。
笑える馬鹿だ。
0222nobodyさん02/08/13 02:27ID:???
キチガイが逆切れするパターンでした。

>どこが偉そうなんだよ?
>>215ってことだよ。
0223nobodyさん02/08/13 08:32ID:???
教えて貰えないからって暴れてら(@w荒
022421002/08/13 10:59ID:???
>名指しで突っ込まれた210が顔を真っ赤にして
>必死の書き込みか。

うわー、こんなこと言われちゃった。しょぼーん。
だってだってあんなに初歩的で自明で誰でもわかることを
わざわざ聞くなんて意図が理解できないもん。
0225つーか02/08/14 00:30ID:aO5wTT78
試せば判るだろ(w
0226nobodyさん02/08/14 01:34ID:???
その試しもしない夏厨が多いんよ。
例えば209とか。
0227nobodyさん02/08/14 02:11ID:???
敬語使わなかっただけで
>なんか質問者のくせに偉そうだなお前。
となる>>216や>>217見たいなDQ1Nには
関わらないのが吉。
htaccessごときで偉そうにしてられるのは
このスレだけ!
0228nobodyさん02/08/14 10:57ID:???
>>227=>>209
( ´,_ゝ`)プッ
0229nobodyさん02/08/17 12:35ID:???
WinNT4+Apache2で素材屋運営してるんですが、素材の直リンをなんとかしたいです。
教えてください。
0230nobodyさん02/08/17 12:37ID:???
<FilesMatch "\.(aif(f|)|au|asf|avi|bmp|gif|jp(e(g|)|g)|mid(i|)|mov|mp(0|1|2|3|4|5|6|7|8|9|e(g|)|g)|pic|(m|j|p)ng|qt|ra(m|)|wav|wm(a|v|x))$">
SetEnvIf REFERER "http://localhost" HOST
Order Deny,Allow
Deny from all
Allow from env=HOST
</FilesMatch>
0231nobodyさん02/08/17 13:54ID:???
SetEnvIf Content-Type "^image/" hoge
SetEnvIf Content-Type "^audio/" hoge
SetEnvIf Content-Type "^video/" hoge
SetEnvIf Referer "^http://my.homepage.url/" !hoge
deny from env=hoge
0232nobodyさん02/08/17 15:47ID:???
>>231
お。そっちのが効率いいな。
0233nobodyさん02/08/17 22:16ID:???
>>209=227
君はそのhtaccessごときにてこずっているわけだが
0234nobodyさん02/08/18 00:45ID:???
>>233
htaccessごときで偉そうにできるのはこのスレだけ!(w
0235nobodyさん02/08/18 18:48ID:???
>>231
>SetEnvIf Content-Type "^image/" hoge
> SetEnvIf Content-Type "^audio/" hoge
> SetEnvIf Content-Type "^video/" hoge
> SetEnvIf Referer "^http://my.homepage.url/" !hoge
> deny from env=hoge
>
これはダメでした。
直リンできちゃいました。
気をつける点はありますか?
0236nobodyさん02/08/18 19:42ID:???
>>230
のだめもとで試してみたら。
0237nobodyさん02/08/18 20:24ID:???
SetEnvIfNoCase Referer ^http://www\.hoge\.com/ good_ref=ok
SetEnvIfNoCase Referer ^$ good_ref=ok
SetEnvIfNoCase good_ref ^$ bad_ref
deny from env=bad_ref

これじゃだめか?
0238nobodyさん02/08/18 21:58ID:???
>>237
>SetEnvIfNoCase Referer ^http://www\.hoge\.com/ good_ref=ok
> SetEnvIfNoCase Referer ^$ good_ref=ok
> SetEnvIfNoCase good_ref ^$ bad_ref
> deny from env=bad_ref
>
これだとhtmlファイルも弾かれないか?
0239nobodyさん02/08/18 22:40ID:???
>>238
そのまま置けばな。
FilesかSetEnvIf Content-Typeで調整すれば済む。
0240nobodyさん02/08/19 06:23ID:???
order allow,deny
allow from all
deny from 61.32/13
deny from 61.40/14
deny from 61.72/13
deny from 61.80/13
deny from 61.96/12
deny from 61.248/13
deny from 202.6.95/24
deny from 202.14.103/24
deny from 202.14.165/24
deny from 202.20.82/23
deny from 202.20.84/23
deny from 202.20.86/24
0241nobodyさん02/08/19 06:23ID:???
deny from 202.20.99/24
deny from 202.20.119/24
deny from 202.20.128/17
deny from 202.21.0/21
deny from 202.30/15
deny from 202.189.128/18
deny from 203.224/11
deny from 210.80.96/19
deny from 210.90/15
deny from 210.92/14
deny from 210.96/11
deny from 210.178/15
deny from 210.180/14
deny from 210.204/14
deny from 210.216/13
deny from 211.32/11
deny from 211.104/13
deny from 211.112/13
deny from 211.168/13
deny from 211.176/12
deny from 211.192/10

韓国、むかつくから.htaccessが使える鯖の奴はみんなコレ入れてくれ。
0242nobodyさん02/08/19 11:17ID:???
deny from .kr
でええやん。
0243nobodyさん02/08/20 06:08ID:???
>>242
DQNですか?
韓国は逆引き設定してる所が少ないんだべ。
それに、こー設定するとパフォーマンスが落ちる。
>240-241が正解。
0244nobodyさん 02/08/20 18:22ID:???
CIDRで弾く範囲を指定しておいて、一部を通す方法って、

order deny,allow
deny from **.***/**
allow from **.**.**.***

これでいいんですかね?
deny from allを省略しないとだめっぽいんだけど、
どのサイトにも載ってないんですよ。
024524402/08/20 18:24ID:FSRtrPuq
質問なんで上げます
0246nobodyさん02/08/20 19:58ID:???
>>243
2行目がいらん。
024724402/08/20 20:03ID:FSRtrPuq
言葉が足りなかったかな。
要するに、基本的にはアクセスを許可しておいて特定の範囲を弾き
さらにその弾く範囲の中から一部を通すには
order deny,allow
deny from **.**/**
allow from **.**.**.***
この記述でいいのかってことなんだけど。
0248nobodyさん02/08/20 21:52ID:???
>>246
つか、>>242はDNSの仕組みすら知らないんだから。
0249nobodyさん02/08/20 23:06ID:???
>>247
とびとびに範囲が判ってるならそれぞれdenyすれば済むよ。

関係無いが、
deny from 202.30/15
ではなく
deny from 202.30.0.0/15
と書かないとだめかも。
0250nobodyさん02/08/20 23:50ID:???
言語設定で日本人以外見られなくすれ。
0251nobodyさん02/08/21 02:07ID:Tkj4XQam
ネットマスクについて、質問です。
211.192.0.0から211.255.255.255を弾きたい場合、
deny from 211.192.0.0/10
で正しいでしょうか?
バイトビットって何?なレベルから始まって、
ネットマスクの書き方を自分なりに調べたのですが、
生半可な知識なので間違えて理解してないか不安です。
もし間違いでしたら、どのように記述すれば良いか
教えていただければ幸いです。
0252nobodyさん02/08/21 23:58ID:???
判らなくなったら2進数に変換汁。
11010011.11000000.00000000.00000000から
11010011.11111111.11111111.11111111までなので
11111111.11000000.00000000.00000000がマスクと判る。
1が上から10個だから/10でいいよ。
■ このスレッドは過去ログ倉庫に格納されています