./index.htmlにアクセスしてきた人を./に戻したい

[上に] [前に] [次に]
wa [E-Mail] 1999/09/26(日) 23:54:56
タイトルでうまく言えていない気もするんですが

http://www.***.com/username/***/index.html
にアクセスしてきた人を
http://www.***.com/username/***/
http://www.***.com/username/***/index.cgi)
にアクセスしたことに出来る方法はありますか?

アクセスログをとっていて、最初にindex.cgiにアクセスしてほしいんですが、
(ログをとってその後index.htmlに行くようになっています)
いろいろ探してもそう言ったCGIとかが見つかりませんでした。

結果的に、index.html→index.cgi→index.htmlって事にしたいんですが、
わかる方いらっしゃいますか?

ちなみにうちのサーバーは
http://www.***.com/username/***/
にアクセスすると、index.htmlより先にindex.cgiに行くようになっています。

B-Cus 1999/09/27(月) 00:20:15
http://japache.infoscience.co.jp/japanese_1_3/manual/mod/mod_alias.html#redirect

wa 1999/09/27(月) 01:08:15
[[解決]]
簡潔なご回答ありがとうございます。
早速言ってみたんですが、まったく言っていることがわかりませんでした
理解してから報告するとだいぶ後になりそうなので、解決にさせていただきます。
一からやってみます。ありがとうございました

そう言えば、うちのサーバーは
HTTPサーバはZeus/3.3でCGIサーバはApache/1.3.6らしいのですが、
この方法で大丈夫ですよね?

かつべ 1999/09/27(月) 01:55:28
ふと思ったんですけど、アクセスログとるだけだったら、
index.htmlからCGI起動しちゃった方が、手っ取り早い気が
するのですが(^^;

wa 1999/09/27(月) 02:19:37
#include virtualとか使おうとか思ったんですが、
cgi指定ができなかったんです。
…って、こういうことじゃないんでしょうね。きっと

いくつも試したんですが、
どうもきっちり(というよりまともに)ログとってくれなかったんで。
統計画面になれてしまったって言うのもあるんですけど

moci [E-Mail] 1999/09/27(月) 03:13:22
waさんのやろうとしていることは、Redirectでは無理でしょう。
最終的にindex.htmlに来た時にまたindex.cgiに飛ばされて
しまいます。

で、SSIがダメなら、index.cgiでトップページを表示するように
してはいかがでしょう?

とあるINTERQユーザー 1999/09/27(月) 05:46:49
このまえの、
../199909/99090229.htm
に関連した質問みたいなので、対処の一例を・・・
#ちがっていたら、ご容赦をm(_ _)m

「index.html」のファイル名を変更し、
かつ、「index.cgi」の最後の行のファイル名を、
併せて変更します。
例・・・
「index.html」→「main.html」
「index.cgi」の最後の行の、
print "Location: http://www.interq.or.jp/***/username/index.html\n\n";
を、
print "Location: http://www.interq.or.jp/***/username/main.html\n\n";
に、変更。
そして、「index.html」の中身を、
<HTML>
<HEAD>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://www.interq.or.jp/***/username/">
</HEAD>
</BODY>  #この2行って、
</BODY>  #書く必要あるのだろうか(?_?)
</HTML>
に、変更。

これで、「index.html」にアクセスしてきた方たちを、
「index.cgi(略/***/usename/)」へとばすことが出来て、
前よりも正確なログがとれると思います。
しかしながら、上記のような経路でアクセスされた場合、
「HTTP_REFERER」を取得することが出来なくなります。<実験済み
#「HTTP_REFERER」については、こちらを参照↓
#http://www.tohoho-web.com/wwwcgi3.htm#CgiEnvironment

>結果的に、index.html→index.cgi→index.htmlって事にしたいんですが、
まとめ
index.html→index.cgi→main.html(旧index.html)
ということになりますね。

poi 1999/09/27(月) 07:52:52
でもそうすると,ユーザーのブックマークに入るのはmain.htmlになるのでは?

B-Cus 1999/09/27(月) 11:40:23
> waさんのやろうとしていることは、Redirectでは無理でしょう。
あ、確かに。失礼。

> 早速言ってみたんですが、まったく言っていることがわかりませんでした
一応説明しておくと、.htaccess に
 Redirect /~username/index.html http://www.***.com/~username/
などと書きます。Zeusというので使えるかどうかはわかりません。

とあるINTERQユーザー 1999/09/27(月) 21:37:57
poiさんへ
>でもそうすると,ユーザーのブックマークに入るのはmain.htmlになるのでは?
最終的に読み込みが終わった時点で、訪問者がブックマークに入れてしまうと、たしかにご指摘の通りになってしまいますね。(汗)
HP上にて・・・
リンク及びブックマークは、
http://うんたら/***/username/
に、お願いします。
・・・と注意書きするぐらいしか方法はないのかも。

#ブラウザのアドレス欄を書き換えられれば、良いのかもしてないけど、
#私は、その方法まではわかりません。
#できるのかな(?_?)

wa 1999/09/28(火) 01:10:43
いろいろ考えたんですが
ダミーフレームで全部index.htmlになるように見せる…と思ったら
こういうサンプル自体あったようですが…
こうするとノーフレームの人が取れないんですが、それはいいとしても
その中にまたフレームセットするとtarget指定がうまく行かないようですね

>とあるINTERQユーザーさんへ
この間の改造の続きです。Web裏技さんのところに、参照制限なるものもあったんですが、
ちょっとCGI勉強して…頼ってばかりいても仕方ないんでCGI勉強して改造してみます。

とはいってもいつになることやら
あまりログとることに向きになっても仕方ないような気もするんで
いくつか付けてカウントはこれ、どこから来たかはこれって感じにして見ます
というわけで一応解決…と思ったらもう解決おしてあったですね
それでは
でもわかる人いたら教えてください。

かつべ 1999/09/28(火) 01:23:26
IMGタグで呼び出してしまってはどうでしょうか。

最後に適当な画像を出力しとけばいいわけですし。
ようするに、カウンタですね。

wa 1999/09/28(火) 01:48:20
ご返答ありがとうございます。
ただうちのサイト、同一人物なのかもしれないですが、
NojavaScriptの人とかNoframeブラウザの人が妙にいるんです。
おそらく画像は読みこまないって人も多いような気もします

IMGでCGI指定する場合、ブラウザが画像非表示になっている場合は
やはりカウントされないですよね
何がなんでもこの画像は読みこむっていう方法があればいいんですが、
何かありませんか?

やっぱりカウントにこだわり過ぎって気もしますね…

とあるINTERQユーザー 1999/09/28(火) 02:02:58
waさんへ
>ダミーフレームで全部index.htmlになるように見せる…と思ったら(略)
「index.cgi」からの出力で、フレームを作ってやれば、
訪問者は「index.cgi」を通さなければならないので、
かなりの正確なログをとることが可能になるかと・・・。
>ちょっとCGI勉強して…頼ってばかりいても仕方ないんでCGI勉強して改造してみます。
私もperl修行中の身です。がんばってください。

かつべさんへ
>IMGタグで呼び出してしまってはどうでしょうか。
残念ながらその方法だと、「HTTP_REFERER」が取れません。
確か、IMGタグが書いてあるページのURLが入ったはず・・・。<記憶があいまいです。m(_ _)m
画像offで作動しなくなりますし、
また、JavaScriptなどを使って「HTTP_REFERER」を取っても、
こちらもoffにされちゃうと・・・。
#「HTTP_REFERER」にこだわるわけではありませんが、
#waさんが、使用しています「web裏技」さんところのスクリプトには、
#「HTTP_REFERER」の記録を行っていましたものでしたので、
#なるべく確実に記録できるような状況にしたかったため、
#このような追加発言になったしだいです。m(_ _)m

wa 1999/09/29(水) 07:57:21
フレーム使えば完璧とか思って、いざやってみようと思ったとき
問題が…
フレームセットでログをとるcgiにセットすると
フレームセットしてある場所のURLから来たことになってしまいますよね
とあるInterQユーザーさんのいっていることはcgiの中にFRAMESETを作るということなのだと思うので
それとはちょっと違うことだとは思うのですが。

ちょっと思ったんですが、二つ前のHTTP_REFERERをとることは可能なのでしょうか?
無理そうですけど

ちょっと話変わりますが、
サーバーによってHTTP_REFERERなどがおかしいって聞くんですが、
実際はどうなんでしょうか?
InterQたまにHTTP_REFERERが画像のURLだったりするんですけど…

wa 1999/09/29(水) 07:59:36
訂正
>二つ前の
フレームセットしてあるURLにアクセスしてきたときのってことです。

それから”ちょっと”って言葉が多すぎました。

とあるINTERQユーザー 1999/09/29(水) 18:30:06
>フレームセットでログをとるcgiにセットすると
>フレームセットしてある場所のURLから来たことになってしまいますよね
<FRAMESET>が書いてあるページから、「ログ取り.cgi」を呼び出すって意味でしょうか?
「index.cgi(いわゆるログ取り.cgiのこと)」に<FRAMESET>を作るというのは、
ログ取りと<FRAMESET>を「index.cgi」で行うという意味です。
また改造になりますが・・・
「index.cgi(log.pl)」の最後の行を、
print "Content-type: text/html\n\n";
print "<html><head></head>\n";
print "<frameset 略 >\n";
print "<frame src=\"ページ1.html\" name=略 >\n";
print "<frame src=\"ページ2.html\" name=略 >\n";
print "</framset>\n";
print "</html>\n";
書き換えると、「index.cgi(log.pl)」自身が、
ログ取り処理のあとに、フレームセットをしてくれます。
#この疑問の、私の解釈が違っていたらご容赦を。m(_ _)m
#ちなみにこの方法は、自分ところのサイトで行っている方法です。
ただ、この方法だと、結局ブラウザのアドレス欄には、
http://cgi.(略)/***/username/index.cgi」と残ってしまい、
残念ながら最初の質問の、根本的な解決にはなりませんね。(^^;)
ですがこの場合、読み終わった時点でブックマークを行うと、
次回ブックマークを使用した訪問時では、ログを取ることはできますね。
ここからは、推測ですが・・・
「index.html」へアクセスしてくる訪問者の場合は、
たいていの場合、ブックマークやURL直入力でのアクセスではないのでしょうか?
とすると、「index.html」にアクセスしてくる訪問者の「HTTP_REFERER」は、
取る必要はないのではないかと思います。
「index.html」へアクセスしてくる訪問者で、かつ「HTTP_REFERER」がセットされうる状況は、
一般的に、リンクをたどってこられた場合によるものだと思うので、
この場合は、リンク先のサイトに、リンクの変更を求めれば良いのではないでしょうか?
(「http://(略)/***/username/index.html」を、「http://(略)/***/username/」に変更してもらう)

>二つ前のHTTP_REFERERをとることは可能なのでしょうか?
これは無理だと思います。

>サーバーによってHTTP_REFERERなどがおかしいって聞くんですが、
>実際はどうなんでしょうか?
>InterQたまにHTTP_REFERERが画像のURLだったりするんですけど…
ウチのとこでも、よくおきます。<記録されてます。
InterQのサーバだからなのか?は、わかりません。
「HTTP_REFERER」は、一般的にはブラウザが設定する環境変数ですので、<間違っていたら、どなたかご指摘をm(_ _)m
サーバの問題では無いような気もしますが・・・?<未確認
#ウチのログでは、「WIN9x + IE4.0x」での訪問者の場合に、
#このような現象が、よく起きるみたいですね。<サーバ問題は別にして
#しかしながら、「IE5.0」でもたまに起きるので、
#IE自体のバグなのでは?と個人的には推測してますが、
#ホントのところは、どうなのか・・・?
#ネスケでは、残念ながら訪問者が少ないため、詳しくはわかりませんが、
#このような現象は、起きていない模様です。
#他の機種(UNIX系やMacなど)は、皆無なのでわかりません。(^_^;)

とあるINTERQユーザー 1999/09/29(水) 18:30:46
長文、大変失礼しました。m(_ _)m

とあるINTERQユーザー 1999/09/30(木) 01:24:54
<NOFRAME>処理、忘れてた・・・。
この方法で行うなら、
<NOFRAME>処理は、うまく作ってください。(^^ゞ)
手抜き失礼。m(_ _)m

TAKI 1999/09/30(木) 02:29:32
>フレームセットでログをとるcgiにセットすると
>フレームセットしてある場所のURLから来たことになってしまいますよね

Win95+AnHTTPdでちょっと試してみました。
a.html → b.html という風にリンクを貼り
b.htmlをフレームにして、中に
単にHTTP_REFERERを表示させるだけのCGIを入れてみました。

a.html → b.htmlと辿った時のCGIの表示結果:
IE4.01:http://localhost/b.html
Netscape4.05:http://localhost/a.html
Netscape3.03:http://localhost/a.html

…ブラウザ次第のようですね。

wa 1999/09/30(木) 04:19:01
皆さんありがとうございます
SSI使えない状況できちんとログとることはなかなか難しいようですね
SSI使えるっていわれているだけになんか悔しい…

トップページをCGIにすると、ローカルでの更新にいろいろ問題出てきたので
ちょっと実用的で無いような気も…まあ、HTMLで代用すればいい話ですが

>たいていの場合、ブックマークやURL直入力でのアクセスではないのでしょうか?
>とすると、「index.html」にアクセスしてくる訪問者の「HTTP_REFERER」は、
>取る必要はないのではないかと思います。
という所なんですが、個人的な?アクセスカウンタとして結構使ってもいるんで必要です。
HTTP_REFFERとるものと、他のもの取るのを別に付けるとサーバー負担の多そうですしね。

現時点ではそれほどアクセス数無いのいくつかくみ合わせて使うしかないのかもしれないですね
逆にアクセス数少ないからきちんとしたものを取りたいって事も有りますが

なんかやっぱり執着しすぎですね
InterQに#include virtualでCGI指定できるように頼んでも無理そうですし
取りあえずお金出来次第CGIの本を買って勉強してみます。

lynx 1999/09/30(木) 09:17:45
余計なお世話かもしれませんが、
以下のサイトに、SSIを使わずアクセスログを取るプログラムがあります。
私も使っていますが、とても使いやすく、便利です。

■KENT WEB
http://www.kent-web.com/

wa 1999/10/03(日) 06:41:15
いまさらですいません。
それも使っていましたが、5分の1ぐらいしかカウントしてくれなかったもので。
どうもJavaScriptオフの人が妙に多いようです、調べました
画像オフの人はわかりません。

[上に] [前に] [次に]