• ベストアンサー

クエリーをキーなしで?

http://www.****.com/index.cgi?num=1 ↑今現在、こういった形で運用しているのですが、これを短縮して、 http://www.***.com/1 でも動くようにしたいと思っています。 これを実現させる為には .htaccessの変更が必要になるのでしょうか? あと、キー(num)も省略したいのですが、 require './cgi-lib.pl'; my %input; &ReadParse(\%input); $number = %input; こんな感じで合っていますでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> .htaccessの変更が必要になるのでしょうか? はい。このURLをCGIだと認識させる必要があります。RewriteEngine等を使えばいいと思います。 > こんな感じで合っていますでしょうか? ハッシュをスカラ値で評価しても値は返ってこないので、NGです。RewriteEngineを使うなら、key=valueの形に書き換えれるのでこういう手法は必要なくなります。 もしくは、上記のサーバの設定方法を含めた構成方法によっては$ENV{PATH_INFO}辺りで参照って手もありますね。

tessyu
質問者

お礼

どうもありがとうございます!! 無事に解決致しました。 RewriteEngineの事は全く知りませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • cgi-lib.plの&ReadParse();の()の中

    cgi-lib.plのReadParseを使う時、  require 'cgi-lib.pl';  &ReadParse(*---); こんな風に書きますよね? ()の中はどういう意味なんでしょうか? 何でもいいんですか?

    • ベストアンサー
    • Perl
  • jcode.pl と &ReadParse()

    CGIファイルの先頭は #!/usr/local/bin/perl require './cgi-lib.pl'; require './jcode.pl'; &ReadParse(); という感じになっています。 ここでのの require は、日本語を使うためのもの だと思っています。合っていますか? &ReadParse() というのは何ですか? require と関係があるみたいです。 require を書かずに &ReadParse() を書くとCGIエラーになります。

    • ベストアンサー
    • CGI
  • cgi-lib.plのReadParse関数

    あるパールからcgi-libを呼び出して、ReadParse関数を使おうとするとInternal Server Errorがでてしまいます。 パールの中身は #!/usr/local/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse(*in); です。 そこで3行目と5行目の行頭に#をつけて飛ばすとパールは正常に動きます。 これってcgi-lib.plのReadParse関数がいけないんでしょうか? ダウンロードしたまま何も変更していないのに..... ちなみにサーバーのパールのバージョンは5.004のようです。

    • ベストアンサー
    • CGI
  • Perlでuse strictと %inの共存

    use strictを使うと、変数の使用に厳密にチェックしてくれるので、便利だと思い使いましたが、ReadParse後の%inを利用する場合に宣言されていないエラーが表示されます。意味的には正しいですが、$in{'test'}など CGIで受け取った内容が扱えなくなるので、困っております。何か解決方法は有るのでしょうか? use strict; require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse; my $x = $in{'md'};

    • ベストアンサー
    • Perl
  • use strictとグロブ?

    cgi-lib.plのReadParseの引数でParamグロブを使った場合、 use strict;をすると、必ず以下のエラーが表示されます。 use strictはそのまま使いたく、他の部分も厳密にチェックしたいのですが 何かよい方法はありますか? use strict; require 'cgi-lib.pl'; &ReadParse(*Param); my $MODE = $Param{'MODE'}; <----- errro Variable "%Param" is not imported at

    • ベストアンサー
    • Perl
  • cgi-libを使って変数値渡しをしたいのですが

    cgi間の変数渡しの質問をしたのですが、うまくいかなかったので、調べてみると、 cgi-lib.pl'を使うことで簡単に値を渡せるということが分かりました。 ですが、 use lib '/home/www'; require 'cgi-lib.pl';# cgi-lib.plを呼び出す $test=1000; # 変数値渡し? form_input_post.cgi?name=$test; &ReadParse(*in); として、$testの値をform_input_post.cgiに渡そうとしたのですが。 コンパイルエラーが出てしまいました。 Can't modify constant item in scalar assignment at form_input_post.cgi line 49, near "$test;" syntax error at form_input_post.cgi line 49, near "$test;" form_input_post.cgi had compilation errors. というエラーです。 初歩的なミスな気がしますが原因がわからないので教えて頂きたいです。 よろしくお願いします。

    • 締切済み
    • CGI
  • javascriptでのファイル更新について

    prototype.jsのAjax.Updaterでファイルを閲覧することはできたのですが、 ファイルを更新する方法が分かりません。 javascriptでファイルを更新することは不可能なのでしょうか。 perlで言うところの ============================== require "./cgi-lib.pl"; &ReadParse(); open(FH, ">> aaa.txt"); print FH $in{'bbb'}; close(FH); ============================== みたいな処理がしたいです。 環境の制約によりcgiが使えないのでなんとかjavascriptで実現できないかと考えています。

  • PerlのCGIでフォームのテキスト配列をPerlで取得するには?

    フォームで通常は同じ名前のデータを取得することは無いのですが 表計算のように同じ名前の場合、データの取り出し方がわかりません。 以下、通常の1件の場合のソースです。 #!/usr/bin/perl $| = 1; use strict; our %in; use CGI::Carp qw(fatalsToBrowser); use CGI qw(:standard); require 'jcode.pl'; require 'cgi-lib.pl'; # #-----分岐----- &ReadParse; # 配列でない場合 my $namae = $in{'namae'} print "$namaeで名前が1件表示される"; # これをフォームで namaeが配列になった場合、 #<input type="text" name ="namae"> #<input type="text" name ="namae"> #<input type="text" name ="namae"> # のような場合、3件取得する場合 exit; __END__

    • ベストアンサー
    • CGI
  • perlで受取ったパラメータをバイトコードのまま変数に代入

    HTMLフォームの、name=aのテキストボックスに「あ」と入力しCGIにSubmitすると、a=%82%A0とバイトコードに変換されわたされますよね 受け側のCGIで下記の様にそのパラメータを$aに代入すると、$aには「あ」となって代入されるのですが、あえて「あ」ではなくバイトコードの「%82%A0」で代入するようにするには、どうしたらよいのでしょうか? #!/usr/local/bin/perl require 'cgi-lib.pl'; require 'jcode.pl'; &ReadParse; $a=$in{'a'};

    • ベストアンサー
    • Perl
  • フォーム入力をファイルに書き出す場合のセキュリティ

    メールフォームで入力された項目を csvファイルなどでサーバに残しておきたいです。 フォームの項目は名前、メールアドレスなど一般的なものです。 フォームの入力データをcgi-lib.plを使って my %input; &ReadParse(\%input); $Name = $input{'name'}; のようにして受け取っています。 csvをopen関数を使って書き残そうと思っています。 セキュリティ上問題はないでしょうか。 open関数はセキュリティ上注意しなければいけないと聞いたので 心配です。 お願いします。

    • 締切済み
    • CGI