エスケープ文字を含むローカルパスをアドレスバーに指定した場合にエラーが出力される

概要

この資料は Internet Explorer 6 Service Pack 2 環境下において、エスケープ文字を含むローカルパスをアドレスバーに指定した場合の動作について記述したものです。

現象

Internet Explorer 6 Service Pack 2 環境下において、エスケープ文字を含むローカルパス(C:\test.html? 等)をアドレスバーに指定した場合下記のエラーメッセージが出力される場合があります。
'file:///C:/test.html%3F' が見つかりません。パスまたはインターネット アドレスが正しいかどうかを確認してください。

原因


Internet Explorer の動作としてアドレスバーに URL 形式(例: file://~) で入力されていない場合は、自動的に URL 形式に変換しようとします。 その際、 例えば file:///c:/test.htm%3F の様に"?"のようなエスケープ文字も URL エンコードします。



Internet Explorer 6 Service Pack 1 以前のバージョンの動作として、上記のような URL の場合、再度エスケープ文字をデコードし、アクセスするのでエラーになりません。


Internet Explorer 6 Service Pack 2 の動作として、 上記のような URL の場合、URL の妥当性チェックが動作し結果的に、 file:///c:/text.htm%3F でアクセスしてしまいエラーが発生します。

解決方法

下記のレジストリを設定することにより URL の妥当性チェックを無効にし、現象を回避することができます。

キー: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_VALIDATE_NAVIGATE_URL

種類: REG DWORD

エントリ: iexplore.exe
値: 0


注意:本レジストリを構成することにより Internet Explorer 6 Service Pack 2 の既定の動作であります、URL の安全性のチェックは行われなくなります。
プロパティ

文書番号:907712 - 最終更新日: 2005/09/09 - リビジョン: 1

フィードバック