2012-03-30 29 views
1

IIS7で404ページに転送するようにエラー処理が設定されていますが、クエリ文字列が渡されることはありません。クエリ文字列を404ページに渡す

たとえば、このページは存在しませんので、404ページに指示します。それはだように、それはいないようですので、Page_Loadの中で、私は、ID = 1にアクセスすることができない、404ページで

www.mysite.com/nonexistingpage.aspx?id=1 

これまでに404ページに達しました。だから、それはこれらのメソッドを使用して動作しない取得しようとしている:IISで

Request.UrlReferrer.PathAndQuery 
Request.ServerVariables["HTTP_REFERER"] 

を、私のパスが通り入力されます。/404.aspxとタイプがに設定されています:実行URL。クエリ文字列が404ページに確実に渡されるようにするにはどうすればよいですか?

編集:Fiddlerでは、リダイレクトは/404.aspx?aspxerrorpath=/nonexistingpage.aspxです。これは間違いなく通過していることを確認しています。

答えて

1

ASP.NETエラーページまたはIISエラーページを使用していますか?事実、Fiddlerのリダイレクトについては、ASP.NETエラーページを使用していると思われますが、ExecuteURLはIISエラーページを使用することを示唆しています。あるいは、両者をASP.NETの両方を混ぜ合わせた方がいいかもしれません。

最適なオプションは、404ページにIISエラーページを使用することです。これは、あなたがやりたいことができます:

404;http://www.mysite.com/nonexistingpage.aspx?id=1 
/404.aspxがあなたの非既存のページのために呼ばれている今

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <httpErrors> 
      <remove statusCode="404" subStatusCode="-1" /> 
      <error statusCode="404" prefixLanguageFilePath="" path="/404.aspx" responseMode="ExecuteURL" /> 
     </httpErrors> 
    </system.webServer> 
</configuration> 

、クエリ文字列は次のように設定され

関連する問題