アプリ版:「スタンプのみでお礼する」機能のリリースについて

あるページにアクセスがあったら、IPアドレスをチェックして特定のIPアドレスからのアクセスのみ他のページにリダイレクトし、こういう処理をしたというログを保存したいのですが、方法がわかりません。
現在は、SSIで呼び出したスクリプトでIPチェック後、該当すればJavascriptのtop.location.hrefを書き出しています。この方法だとJavascript自体をOFFにされると機能しません。
METAタグのREFRESHではページをロードしてからのリダイレクトになってしまいます。
ページへのリンク自体をCGIへのリンクにしてLocationヘッダを出力すればいいのでしょうが、直接ページにアクセスされるとこの手も使えません。
.htacceessでdenyして、403のエラードキュメントとして上記の処理をするページを作ってみましたが、このエラードキュメント自体にアクセスできません(denyしているので当たり前ですね)。
何かいい方法はないでしょうか?

A 回答 (4件)

SSIの方法は思いつかないので申し訳ないのですが、



サーバが対応していることが条件ですが、
mod_rewriteを使う方法もありかと思います。
これも結局CGIが処理しますが、#2の補足3点は解消できます。
xxx.htmlで終わるようなURLでもCGIが動作、ということが
できるので、URLも変更しないで動作させることができます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2005/07/18 20:46

ちょっとよく解らなかったのですが、ようするに、


●現在のURLを変更したくない
●CGIのURLをクローラーに拾わせたくない
というようなことでしょうか。

かなり力技ですが、条件に応じてページ丸ごとのHTMLを吐き出すスクリプトを、SSIで埋め込む、というのはどうでしょうか。
ANo.1 の方がおっしゃっているスクリプトの出力を、SSIでページに埋め込む、そのページHTMLファイル自体には <!--#~ しか書いていない、という意味です。

この回答への補足

> かなり力技ですが…
いやいや、ほんとにすごい力技ですね(^_^;)

補足日時:2005/07/18 23:37
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2005/07/18 20:47

SSIで何とかしたいというところ、再度申し訳ないのですが、



.htaccessが使える環境であれば、
DirectoryIndex にindex.cgi を追加するなどして表示させれば
CGIでもSEO対策は全く問題ないと思います。
SSIにこだわる理由が解らないので。。

この回答への補足

> SSIにこだわる理由が解らないので…
あまり詳しく説明できないので申し訳ないですが、
●対象とするページは300ページほどあります。
●クローラにCGIのパスを拾わせたくない、あるいは個々のページのURLを拾わせたい
●上記のURLがすでにクローラによってインデックスされている
といったところでしょうか。
で、そのページに直接アクセスされた場合にも対応可能な方法として、SSIしか思いつかないもので(^_^;)

補足日時:2005/07/18 00:31
    • good
    • 0

CGIで目的のページへ飛ばすのではなくて、


CGIで目的のページを読み込んで出力するという方法をとれば
解決すると思います。

通常はa.html をopen してprint 、
特定のIPのみ、b.html をopen してprint 、
という感じで。

目的のページ自体は直接アクセスできないように
ディレクトリなどに入れて、.htaccessで閲覧できないようにします。

この回答への補足

> 目的のページ自体は直接アクセスできないようにディレクトリなどに入れて、.htaccessで閲覧できないようにします。
これはちょっとできないんです(主にSEO上の理由から)。

> CGIで目的のページを読み込んで出力する…
CGIではなく、SSIでなんとかしたいんですが…。

補足日時:2005/07/17 22:05
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

お礼日時:2005/07/17 22:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!