No.4299 投稿時間:2002年07月26日(Fri) 05:59 投稿者名:kanri URL:
場違いな質問かもしれませんが、perlに詳しい方教えてください。
例えばサーバーの名前を「abc」と設定したWin機で、次のような設定のcgiを動作させると、
URL表示がhttp://abc/~となってしまい正確ではありません。
どのように修正すれば宜しいのでしょうか?
$url = "http://$ENV{SERVER_NAME}$ENV{SCRIPT_NAME}";
No.4301 投稿時間:2002年07月26日(Fri) 09:04 投稿者名:OAK URL:
> 場違いな質問かもしれませんが、perlに詳しい方教えてください。
> 例えばサーバーの名前を「abc」と設定したWin機で、次のような設定のcgiを動作させると、
> URL表示がhttp://abc/~となってしまい正確ではありません。
> どのように修正すれば宜しいのでしょうか?
>
> $url = "http://$ENV{SERVER_NAME}$ENV{SCRIPT_NAME}";
「正確ではありません」は表現が正しくありません。正確にだしているからそのように出ます
どういうふうに出したいのか書かなければ分かりません。
http://xyz/bcd/ss と出したいなら
$url='http://xyz/bcd/ss'; と書けば良いのでは。
$ENV{SERVER_NAME} はサーバマシン名だから abc です (バーチャルホストならそれぞれのホスト名)
$ENV{SCRIPT_NAME} はスクリプト名(プログラム名)ですから /bcd/index.cgi などに相当します。
No.4304 投稿時間:2002年07月26日(Fri) 11:28 投稿者名:kanri URL:
コメントどうもです。
具体的にどういうふうに出したいかというと、
ローカルPCからつない時は
http://192.168.0.*/xxx/yyy/
外部からつないだ時は
http://****.zive.net/xxx/yyy/
です。
No.4306 投稿時間:2002年07月26日(Fri) 12:30 投稿者名:OAK URL:
> コメントどうもです。
> 具体的にどういうふうに出したいかというと、
> ローカルPCからつない時は
> http://192.168.0.*/xxx/yyy/
> 外部からつないだ時は
> http://****.zive.net/xxx/yyy/
> です。
内部から呼ばれた時と外部から呼ばれた時を区別するのなら 接続元のIPアドレスをチェックします
{'REMOTE_ADDR'} が接続元のIPアドレスですから
if( index( $ENV{'REMOTE_ADDR'} , '192.168.' ) >=0) #LAN
{ $url='http://192.168.0.255/xxx/yyy'; }
else # InterNet
{ $url='http://kanri.zive.net/xxx/yyy/'; }
みたいに(実行してませんから正しいか怪しげです)
WANのテストは kkk.nu/wget/ を使っていただいてもかまいません。