• ベストアンサー

ASPで?以外の文字ででQueryStringを受け取りたい

Perlでは、 http://xxxx/read.cgi/yyyy/cccc/ というアドレスでread.cgiにyyyy とccccを 環境変数PATH_INFOをつかって引数にできますが、 ASPでは http://xxxx/read.asp/yyyy/cccc/ では、IISが404を返してきます。 http://xxxx/read.asp?yyyy/cccc/ とすればアクセスできることは確認しましたが、 read.asp?yyyyではなくread.asp/yyyy でアクセスできるようにする方法はありますか?

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

  • ベストアンサー
  • Takr0
  • ベストアンサー率100% (3/3)
回答No.3

ちょっと乱暴ですが、404Not FoundのHTMLページを入れ替えるという手段で以前実現したことがあります。 IISのエラー時に表示するファイルを指定するオプションタブにて404の参照する404.htmlを適当な場所に保存したたとえば404.aspを参照するように変更します。 手抜きで申し訳ありませんが、404.aspのサンプルらしきものを以下に記述します。 <% Option Explicit Dim strPath Dim strASPFileName Dim strQuery strASPFileName = "read.asp" strPath = Request.Servervariables("PATH_INFO"),strASPFileName) strQuery = Right( _ strPath, _ Len(strPath)_ '全体の文字数 - (Instr(strPath,strASPFileName)_ 'ファイル名の位置 + Len(strASPFileName & "/")) _ 'ファイル名 + "/"の文字数 ) Response.Write strQuery %> ソースにエラーがあったらごめんなさい。適宜修正してみてください。

その他の回答 (2)

  • Xaval
  • ベストアンサー率58% (61/105)
回答No.2

デフォルトでは不可です。ASP.NETではOKですが。 http://program.station.ez-net.jp/products/isapi/urlparamfilter/v1.1/ を使えば可能になります。

参考URL:
http://program.station.ez-net.jp/products/isapi/urlparamfilter/v1.1/
回答No.1

たぶん、そのような方法は出来ないのでは無いでしょうか・・・。 自信はありませんが。

関連するQ&A

  • URI引数の書き換え

    こんにちは。 ASP.NET2.0を使っています。 文字列として渡されたURIの引数を入れ替えたいのですが、 なにかよい方法はないものでしょうか? 例えば、 http://xxxxxx/yyyy.aspx?A=XXXX&B=YYYY といった形である場合に、A=XXXXを入れ替えて、 http://xxxxxx/yyyy.aspx?A=ZZZZ&B=YYYY としたいのです。 このとき、引数にAがなく、 http://xxxxxx/yyyy1.aspx?B=YYYY といった形であった場合にはなにもしません。 また、A以外の引数やパスの部分は任意です。 もちろん、XXXXの部分も不定です。 言語はC#を使っています。よろしくお願いします。

  • ASPからexeプログラムへ引数

    ASPの超初心者です。 IIS上のASPから WWWから変数での文字列を test.exeに、引数を与えて実行することは可能ですか? また、それを実行した結果をASPでWWWに表示させたいの ですが、可能ですか? よろしければ、簡単な方法や関数等を教えてくだされば 幸いです。 よろしくお願いします。

  • aspとcgiについて基本を知りたいのですが!初心者向けにお願いします。

    windows2000PROでただいまホームページを作って勉強しています。 環境としてはこんな具合です。 IISにてweb環境を作成。 同時にIISでftpサーバをインストール&設定。 簡単なcgiを動かしたかったのでactivestate.comからactive perlをdownloadしてインストールしました。 動かしたいcgiはlogin.cgiと言う短いperl言語のcgiです。 index.htmlからリンクで動かそうとしましたが、上手くいきません。 active perlのサンプルプログラムを動かしたら上手く動いたのですが、拡張子がサンプルでは.aspとなっています。 思い切ってlogin.cgiをlogin.aspとして動かしたら、なんか動いちゃいました。 login.cgiをdownloadしたホームページの説明ではlogin.cgiの名称で一部変更してコピーと書いていますので、多分見当違いのことをしていると思っています。 基本的な概念が理解できていませんので、asp/cgiの基礎を知りたいと思います。 あわせて今回の間違いも指摘して頂けたらありがたいと思います。 宜しくお願い致します。

    • 締切済み
    • CGI
  • アクセス制限につきまして

    こんにちは CGIにアクセス制限をつける方法で悩んでいます。 例えば、CGIのパラメータをPATH_INFOで渡す場合、 http://...../cgi-bin/xxx.cgi/引数 といった呼び出し方ができますが、 http://...../cgi-bin/xxx.cgi/aaa とした場合と、 http://...../cgi-bin/xxx.cgi/bbb とした場合とで別々のパスワードをかけることは可能でしょうか? 単純にhttp://...../cgi-binに対してパスワードをかけるのなら、.htaccessを使ったBASIC認証で十分なのですが、引数別にパスワードを設けたい場合に、なにか便利な方法はないものでしょうか? CGIそのものはperlで書いています。 よろしくお願いします。

    • 締切済み
    • CGI
  • .html ファイルでasp実行?

    現状、Win2000Server+IIS5.0 上で、以下のようなファイルが動いています。 これを Win2003Server + IIS6.0に移行しているところなのですが、うまく動きません。 まず、index.aspで、index.htmlにリダイレクトし、index.htmlは表示されます。しかし、index.htmlの最初の行にある<!--#include Virtual = "/gl.asp"-->がインクルードされず、ブラウザに表示されたソースを見るとそのまま表示されてしまいます。 そもそも、.htmlなる拡張でaspが実行されるのかが疑問なのです。 ただ、現行サーバでは動いているんですが。 ちなみに新サーバ上でのIISマネージャのWeb拡張にてSSIやCGI、ASPは有効にしてあります。 次に、SSIを.htmlにマッピングしてみました(現行サーバではそうなっていませんが)。 結果、<!--#include Virtual = "/gl.asp"-->はインクルードされましたが、 gl.aspは実行されずそのまま読み込まれただけです。 つまり、ここでもPerlが実行されないまま、単にインクルードされたに過ぎないのです。 Perlでのスクリプトも単独では動作しているのは確認しております。 新サーバ上で、どのような設定が必要なのかが判りません。どなたかお知恵をお貸しください。 よろしくお願いします。 ****************************** [ファイル名 index.asp] <% リダイレクトの為のスクリプト%> ******************************* [ファイル名 index.html] <!--#include Virtual = "/gl.asp"--><% %> <html ・・・ 以下省略(これ以降もHTMLタグとASPスクリプトの混在したものが続く) ************************* [ファイル名 gl.asp] <script language="PerlScript" runat="Server">Perlスクリプト</script> <% ・・・ 以下省略(これ以降もサーバー側ASPに関する記述が続く)に関する記述が続く)

  • 【至急】ASPはmacOSで使用可?

    さまざまなサイトを調べてみると、ASPはクライアント側がmasOSの場合使用不可と書いてありますが、macOSでiisのwebサーバーにアクセスできるとも書いてあります。 ASPとは、iisWebサーバーを通してクライアントに返すものだから、結局どっちが正しいのでしょうか? また、関係ないですが、PHPをASPの技術として組み込むことも可能かも出来れば教えてほしいです。 あるページでは、PHPとCGIとASPを比較していました。 これらは、比較できるものなのでしょうか?

  • ASPでCSVをHTMLに吐き出したい

    お世話になります。 ●やりたいこと 用意されているCSVをサーバーの指定場所にアップロードするだけでHTMLで表として表示されるようにしたい。 (そのHTMLは、データをテーブルなどに入れたい。デザイン性も必要) サーバーがWindowsであるため、Perlなどは使えなかった。 Windows+IISで標準で使えるASP等で対応したい。 データは「,」区切りである。 ●教えていただきたいこと そのようなサンプルのあるサイト等を教えていただきたいです。 個人的には http://www.yasch.com/asp/sample.html の「テキストファイルの読み込みについて」が近いかな?という気がしましたが 読み込んで上で、「,」区切りを認識し分別し吐き出し(変数などをはめ込む必要あり?) デザイン面もいじれれば最高だな、と考えてます。 Perlですと http://cgiroom.nu/list/database/index.html の「検索専用データベース」が一番好ましいのですが 上記にも書きましたとおり、Perlが使用できないので動きませんでした。 ASPに関してはまったくの初心者ですがこれを機に勉強したいと思っております。 以上です。よろしくお願い致します。

  • IIS7でIIS6で動いていたASPアプリを動かしたい

    初めまして、santa51と申します 表題の通り、IIS7でASPアプリを動かしたいのですが、 動きません。 xpのIIS6では動いていました エラーの内容は Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Microsoft Access Driver] ディスクまたはネットワークのエラーです。 /????/?????/login.asp, 行 109 となります 109行は 107 DBName="Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("../cgi-bin/mydb/" & campany & "/master.mdb") 108 Set db=Server.CreateObject("ADODB.Connection") 109 db.Open DBName です。 確認がとれていることは 1.Server.Mappath("../cgi-bin/mydb/" & campany & "/master.mdb")は確実にあっています。 環境は vista business IIS7 access2003 です。 以上、よろしくお願いします santa51

  • perl パラメータ

    このようなソースがあります。 require "test.cgi"; これはperlを読み込めますが、 require "test.cgi/path"; としますと、500Errorです。 .cgiの後ろのPATH_INFOをrequireで読み込むperlのパラメータとして渡す方法はありますか。

    • ベストアンサー
    • Perl
  • IIS或いはwinapache?

    IISでPerlのCGIはどう設定すれば動くようになるのでしょうか? またはWindowsのapacheではVBScriptのASPは動くのでしょうか? Windows2000のWebサーバーでどちらを使うか迷っています。(WindowsのIISはあまりよくわからないので・・・) Linuxのapacheなら多少は解るのですが・・・

専門家に質問してみよう