NET/www
の編集
https://over.6pb.info/wiki/?NET/www
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
*アクセス制限 [#restriction] 自宅サーバーを立てるだけなら固定IPは不要で,ダイナミックDNSでもよい。しかし外部にあるサーバーの認証に自宅IPを使う場合は,ダイナミックIPだとちょっと不便だ。逆引きできないからである。(.htaccessに,ダイナミックDNSのホスト名を書いてもworkしない。Cf. [[HostnameLookups:http://httpd.apache.org/docs/2.2/ja/mod/core.html#hostnamelookups]]。ちなみに、[[Apache ver 2.4>NET/サーバー#apache24]].19から逆引きできないホスト名(ダイナミックDNSなど)でアクセス制限できる。Require forward-dns記法。[[mod_authz_host - Apache HTTP Server Version 2.4:https://httpd.apache.org/docs/2.4/ja/mod/mod_authz_host.html]]) 幾つかの対処策はあるが,一つ,ホスト名とクッキーを併用して認証するのは割と簡単だ。 まず,クッキーを発行するCGIを用意する。次に,アクセス制限したいディレクトリの.htaccessで条件を記述する。 -クッキー発行CGI (Perl)。このURLは人に知られてはいけないし,アクセスに制限を付ける。 #pre{{ my $expires; { local $expire_delta_hour = 24*7; local(@t, @m, @w); @t = gmtime(time() + $expire_delta_hour*60*60); @m = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); @w = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); $expires = sprintf(" expires=%s, %02d-%s-%04d %02d:%02d:%02d GMT;",$w[$t[6]], $t[3], $m[$t[4]], $t[5]+1900, $t[2], $t[1], $t[0]); } print <<END; Set-Cookie: xxx=xxxxxxxxxxxx; $expires; path=/; Content-type: text/html;charset=UTF-8 <HTML> }} -.htaccess #pre{{ Order deny,allow Deny from all Allow from 127.0.0.1 Allow from .ap.plala.or.jp RewriteEngine on RewriteCond %{HTTP_COOKIE} !xxx=xxxxxxxxxxxx RewriteRule ^ - [R=404,L] }}
タイムスタンプを変更しない
___paraedit_taxtarea___
テキスト整形のルールを表示する