URLのドメイン名の後の最初のスラッシュの後の唯一のテキストとして環境変数を含めることにより、perlで記述されたcgiスクリプトに環境変数を渡したいと思います。たとえば、通常は次のようになります http://www.mydomain.com/cgi-bin/my_perl_script.pl?my_environment_variable=12345
。代わりに次のようにしたいと思います http://wwww.mydomain.com/12345
。それ、どうやったら出来るの?ユーザーが自分のサイトをナビゲートするときに、この値に永続的にアクセスしたいと思います。非表示のフォーム入力として渡すか、Cookieを作成していただければ幸いです。これは純粋に美的目的であり、URLを覚えやすくするためのものです。
2 に答える
1
(私がそうであるように)Apacheを実行している場合は、mod_rewriteモジュールを使用する必要があります。見よ:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ([^(cgi\-bin\/my_perl_script\.pl)]+) /cgi-bin/my_perl_script.pl?my_environment_variable=$1 [QSA,L]
</IfModule>
于 2013-02-27T20:49:45.393 に答える
0
CGI.pm
モジュールを使用していると仮定すると、このメソッドを使用して、スクリプトへのアクセスに使用されるURLurl()
を取得できます。オンにして、完全なパスを取得します。-path
-rewrite
その後、好きなように解析できます(URIモジュールが適切な選択です)。
そのような:
use strict;
use warnings;
use CGI;
use URI;
use Try::Tiny;
my $cgi = CGI->new;
my $id = "a default value";
try {
my $uri = URI->new($cgi->url(-rewrite=>1, -path=>1));
my $path = $uri->path;
my @parts = split '/', $path;
$id = pop @parts;
};
print $cgi->header('text/plain');
say $id;
于 2012-10-12T14:29:14.887 に答える