IISのカスタムエラーページについて教えて下さい。
IISの状態コード404のエラーページに遷移した際、
特定のエラー画像ファイルを表示させ、クライアントには200の状態コードを返すよう設定したいです。
この時、"このサイトでURLを実行"を用いる事となると思いますが、
面倒な環境でして、上手く設定する方法が思いつきません。お知恵を拝借させて頂ければと思います。
(なお、例えば"このサイトでURLを実行"ではなく"静的ファイルのコンテンツをエラー応答に挿入"を利用した場合、
404のエラーページに遷移した時、特定のエラー画像ファイルを表示させることはできますが、
状態コード404が返ってしまう為、選択肢から外れています。)
#【環境】
サーバA,サーバBの2台のサーバが存在します。
両サーバは同一のNAS領域(以下NAS)をマウントしており、これを仮想ディレクトリとしてIISに設定しています。
ただし、この仮想ディレクトリのエイリアス設定がサーバA,サーバBで違っており
サーバAは「NASa」、サーバBは「NASb」というエイリアスで設定が行われています。
ディレクトリ構成は以下のようになっています。
[NAS][ImageFolder]
. ├・Sample.jpg
. ├・Error.jpg
. └・web.config
(凡例 []フォルダ、・ファイル
3つファイルはImageFolderにあります。)
#【期待する動き】
①http://サーバAIPアドレス/NASa/ImageFolder/Sample.jpg をIEで開いた時、存在するので正しく開ける事。
②http://サーバAIPアドレス/NASa/ImageFolder/hogehoge.jpg をIEで開いた時、存在しないのでError.jpgが返る事(URLはリダイレクトされない)
③http://サーバBIPアドレス/NASb/ImageFolder/Sample.jpg をIEで開いた時、存在するので正しく開ける事。
④http://サーバBIPアドレス/NASb/ImageFolder/hogehoge.jpg をIEで開いた時、存在しないのでError.jpgが返る事(URLはリダイレクトされない)
#【問題】
"このサイトでURLを実行"はルートに対する相対パスを記載する必要があります。
要は期待する動き②を達成したい時、サーバAとしては「/NASa/ImageFolder/Error.jpg」という記載を行うことになります。
問題は、web.configは仮想ディレクトリに紐づくため、別のエイリアス名で設定されているサーバBとconfigファイルを共有してしまうことです。
サーバBとしては「/NASb/ImageFolder/Error.jpg」と記載されていてほしいのに、"/NASa/"と書かれているため、開く事が出来ないのです。
#【制約】
・サーバA、サーバBのNASの仮想ディレクトリエイリアスをどちらかのサーバに寄せる設定変更を行うことは出来ません。
・wwwroot等、NASより手前にエラー画像ファイルを配置する事は出来ません。
#【質問事項】
web.configに何か加筆を行うことで、上手く期待する動き①~④(というか、②と④)を達成することは出来ますでしょうか。
分かりづらい文章になっていたら申し訳ありません。回答に不足している情報があれば追記致しますのでご指摘下さい。
なにとぞよろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー