- ベストアンサー
リファ元の絶対パス指定のCGI起動方法とは?
- PerlGateというアクセス制限のCGIを利用しています。昔のURLと現在のURLの2つが存在し、それぞれのURLから同じページ内容を表示する方法を教えてください。
- リファ元が絶対パス指定のCGIを2つのページから起動する方法はありますか?YahooとGoogleからのアクセスで同じページ内容を表示するために、どう設定すれば良いでしょうか?
- レンタルサーバの設定で昔のURLと現在のURLの2つがあり、リファ元を絶対パス指定するCGIを使っている場合、どのように設定すれば同じページ内容が表示されるでしょうか?現在、旧URL利用者には新URLへの移行を呼びかけていますが、その他のリファ元で404エラーを表示させたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
PerlGateの改造より、旧URLへのアクセスを新URLへ自動転送させた方が手っ取り早いと思います。 旧URLのperlgate.cgiを下記内容にそっくり変更して下さい。 (下記をまるごとコピーしてテキストエディタに貼付け、ファイル名「perlgate.cgi」で保存→旧URLのperlgate.cgiへ上書き) -----------------------------ここから↓ #!/usr/local/bin/perl ##### 転送先のURL $newurl = 'http://xxxxxxxxxx/xxxxxx/perlgate.cgi'; ##### タイトル $title = '自動転送'; ##### 背景色・文字色等の設定 $body = '<BODY BGCOLOR="#FFFFFF" TEXT="#000000">'; ##### 自動転送する待ち時間 $wait = '1'; ##### 転送画面のコメント $comment = '○○○○の入口は、移転しました。'; ##### コピーライツ表示等 $copyright = 'Copyright © 2008 ○○○○ All rights reserved.'; ########## ↑ 設定はここまで ↑ ########## #------------------------------# # ここから下が転送画面の表示。 # #------------------------------# print "Content-type: text/html\n\n"; print "<HTML>\n<HEAD>\n<TITLE>$title</TITLE>\n</HEAD>\n"; print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">\n"; print "<meta http-equiv=\"refresh\"content=\"$wait; url=$newurl\">\n"; print "</HEAD>\n"; print "$body\n"; print "<br><br><br><br><br>\n<center>\n"; print "<H3>$comment</H3>\n<br>\n"; print "<P>自動転送しない場合は、<a href=\"$newurl\">こちら</a>へ</P>\n"; print "<br><br>\n"; print "<P>$copyright</P>\n</center>\n"; print "</BODY>\n</HTML>\n"; -----------------------------ここまで↑
その他の回答 (1)
- korolo
- ベストアンサー率42% (39/92)
ANo.1です。 旧URLのcgi変更をアドバイスした目的(旧URLのperlgate.cgi)は、本来のperlgate.cgiを動作させるものではなく、単に新URLへ飛ばす為のcgiです。 ※変更アドバイスした内容の変数(少なくとも$newurlは、適切な新URLに)設定されましたか? ※従って、旧URLのサイトには必要なディレクトリと内容変更したperlgate.cgiだけ置いておけば良いという事です。 ◎39callさんのサイト内容が分かりませんので、私が勘違いをしているのかもしれませんが、Yahoo検索から旧URLのperlgate.cgiへアクセスされた方を、新URLへ自動転送させるというものです。
お礼
2度目のご回答、ありがとうございます。 ご提案内容を見ていて「新掲載ページに飛ばす」という発想がなかったことに気づきました。 CGIを仕掛けたページはトップ以下のページですので、トップや他のページからこのページへのリンク先を絶対パスに変更することで解消できてしまいました。 お手数をおかけしました。
お礼
ありがとうございます。 つまり、掲載ページからperlgateを起動するのではなく、一旦別のページをCGIで作って、そこからperlgateを起動する形にするわけですね。 試してみます。
補足
新旧どちらのURLも掲載ページの実データは同じもの(text.html)で、perlgate.cgiをセットしたところを教えていただいたcgiに変えたところ、 新URLからは問題なくきちんとperlgateを呼び出せるのですが、旧URLだと教えていただいたcgiは動くのですが、そのあとperlgate.cgiを読み込む段階で「404」になってしまいます。 やはり、旧URLの場合新URLを読み込んでからでないとダメなようです。