ColdFusion アプリケーションを引き継いでいますが、書き直しに問題があります。
サイトは IIS7/CF9.0.1/SQL Server スタック上にあります。Helicon マネージャーが書き換えを処理しています。
ほとんどの URL は html ファイルに書き込まれるため、/profile.html のようになります。
URL は次の行で書き換えられます。
RewriteRule /([^\?]*?)\.(html)(\??)(.*)? /default.cfm?name=$1.$2&$4 [I]
/view.html?id=123 のようなクエリ文字列がある場合に問題が発生します。クエリ文字列は $4 変数で記述する必要がありますが、次のように URL をダンプすると、アプリケーションで何も得られません。
<cfset objRequest = GetPageContext().GetRequest() />
<cfset strUrl = objRequest.GetRequestUrl().Append(
"?" & objRequest.GetQueryString()
).ToString()
/>
<cfoutput>#strUrl#</cfoutput>
http://10.211.55.6/default.cfm?name=view.html&のようなものが得られます。クエリ文字列は表示されません。
私はそれがIISの設定だと思います.htmlハンドラーがGET変数にアクセスできるようにしますか?.html ハンドラを設定しましたが、うまくいきません。