3

IIS7 用の URL 書き換えモジュールを使用しています - いくつかの静的ファイルの URL 書き換えのためです。

基本的に /pretty-url を /real-file-name.html にマッピングしています

ここまでは簡単です。

しかし、pretty url にクエリ文字列を追加すると、404 ステータス コードがスローされます。これまでのところ、これを修正するオプションは見つかりませんでした。アドバイスはありますか、それとも何か間違っていますか?

構成は次のとおりです。

<rewriteMaps>
  <rewriteMap name="CoolUrls">
<add key="/pretty-url" value="/real-file.html" />
    ... and so on ...
  </rewriteMap>
</rewriteMaps>

と:

<rules>
  <clear />
    <rule name="Rewrite rule for CoolUrls" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{CoolUrls:{REQUEST_URI}}" pattern="(.+)" />
      </conditions>
      <action type="Rewrite" url="{C:1}" appendQueryString="true" />
    </rule>
</rules>

クエリ (? マークの後のパラメーター) を含むすべての要求は、404 ステータス コードで終了します。

4

3 に答える 3

1

これを行う別の方法は、またはSCRIPT_NAMEの代わりにプルすることです。rewriteMap キーの先頭のスラッシュにも一致します。高度なオプションの設定 (clear、trackAllCaptures など) を省略して、他の人のためのより良い出発点として機能させました。REQUEST_URIR:0

<rules>
    <rule name="Rewrite rule for CoolUrls">
      <match url=".*" />
      <conditions>
        <add input="{CoolUrls:{SCRIPT_NAME}}" pattern="(.+)" />
      </conditions>
      <action type="Rewrite" url="{C:1}" appendQueryString="true" />
    </rule>
</rules>
于 2013-07-01T19:55:25.210 に答える