5

web.config 展開変換を書き換えルールで機能させる方法がわかりません。私は次のことを試しましたが、それは無視されます。

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">


 <system.webServer>
 <rewrite xdt:Transform="Replace">
  <rules>

    <rule name="Force HTTPS On Login/Register" stopProcessing="true">
      <match url="Account/Login(.*)|Register(.*)" ignoreCase="true" />
      <conditions>
        <add input="{HTTPS}" pattern="^OFF$" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
    </rule>


    <rule name="Force HTTPS Off" stopProcessing="true">
      <match url="((Account/Login(.*))|(Register(.*)))" negate="true" ignoreCase="true" />
      <conditions>
        <add input="{HTTPS}" pattern="^ON$" ignoreCase="true" />
      </conditions>
      <action type="Redirect" url="http://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
    </rule>


  </rules>
 </rewrite>
</system.webServer>
4

1 に答える 1

6

私は、SlowCheetah を使用して、本番用に web.config を変換しています。私はもともとあなたが試したことを試しましたが、空を追加する必要があることがわかりました

<rewrite>
  <rules />
</rewrite>

ベース web.config に

そして、次のような変換を記述します

<system.webServer>
    <rewrite>
      <rules>
        <rule name="Redirect to HTTPS" stopProcessing="true" xdt:Transform="Insert">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="^OFF$" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
</system.webServer>

(これはリダイレクト変換ですが、同じ原則が適用されるべきだと思います)。

基本構成ファイルxdt:Transform="Insert"の骨格に新しいノードを挿入することに注意してください。<rules />

于 2013-05-02T04:32:15.210 に答える