Apacheをインストールしたubuntuマシンがあります。Web ページを使用して、cgi を介して簡単なシェル スクリプトを実行し、ホーム画面に戻りたいと考えています。戻るステップも自動にしたいです。正常に動作する apache.conf にリダイレクトを設定しましたが、スクリプトがまったく実行されません。
スクリプトを実行してからリダイレクトを適用する方法はありますか?
コメント:これ
が
答えかもしれませんが、よくわかりません。
cgiスクリプトにこのような出力をさせることはできませんか?
<META HTTP-EQUIV=Refresh CONTENT="0; URL=http://www.your-home-page.com/">
あなたのApacheは、実行される前にCGIスクリプトへのアクセスをリダイレクトすると思います。
cgi-script でリダイレクトを行う必要があります。次の 2 つの方法があります。
http リダイレクション ヘッダーを出力するスクリプトを作成できます。これにより、Web ブラウザーに新しいサイトをロードするように指示することもできます。ここにperlの例があります:
#!/usr/bin/perl
use CGI;
my $c = CGI->new();
print $c->redirect("http://yoursite");
このスクリプトをコンソールで呼び出すと、次のように出力されます。
Status: 302 Found
Location: http://yoursite
perl CGI モジュールのようなヘルパー モジュールを使用してこのヘッダーを生成するのが最も簡単です。ただし、上記の行を直接印刷することもできます。
Web ページからシェル スクリプトを呼び出したい場合は、サーバー側のインクルードを使用することもできます。たとえば、php を使用する場合は、system()またはexec()を使用して php ページからスクリプトを呼び出します。
注意の最後の言葉: cgi または php のシステム コールを介して apache からスクリプトを実行することは、次の理由から非常に洗練されたソリューションではありません。
解決したい問題がわからないと、より詳細なアドバイスをすることは困難です。なんらかの形式のユーザー認証が必要な場合は、htaccess-mechanism を探してください。それ以外の場合は、ブラウザによって呼び出されたときにすべての処理を行う php-script を記述します。このスクリプトは、終了時に別のページにリダイレクトすることもあります。