1

このように、書き換え規則を保持するファイルをロードできます。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
      <rewrite>
        <rules configSource="rewrites\site1.config" />  
      </rewrite>
      <httpErrors errorMode="Detailed" />
    </system.webServer>
</configuration>

フォルダー /rewrites で、(たとえば)を含むファイル site1.config が見つかります。

<?xml version="1.0" encoding="utf-8"?>
<rules>

  <rule name="default_store">
    <match url="(.*)" ignoreCase="true" />
    <conditions>
      <add input="{SERVER_NAME}" pattern="^devstore\.domain\.edu*" />
    </conditions>
    <serverVariables>
      <set name="HTTP_X_MAGE_RUN_CODE" value="base" replace="true" />
      <set name="HTTP_X_MAGE_RUN_TYPE" value="website" replace="true" />
    </serverVariables>
    <action type="None" />
  </rule>


  <rule name="student_store">
    <match url="(.*)" ignoreCase="true" />
    <conditions>
      <add input="{SERVER_NAME}" pattern="^studentstore\.domain\.edu*" />
    </conditions>
    <serverVariables>
      <set name="HTTP_X_MAGE_RUN_CODE" value="studentstore" />
      <set name="HTTP_X_MAGE_RUN_TYPE" value="website" />
    </serverVariables>
    <action type="None" />
  </rule>

  <rule name="test_store">
    <match url="(.*)" ignoreCase="true" />
    <conditions>
      <add input="{SERVER_NAME}" pattern="^teststore\.domain\.edu*" />
    </conditions>
    <serverVariables>
      <set name="HTTP_X_MAGE_RUN_CODE" value="teststore" />
      <set name="HTTP_X_MAGE_RUN_TYPE" value="website" />
    </serverVariables>
    <action type="None" />
  </rule>

  <rule name="general_rewrite">
    <match url="(.*)" />
    <action type="Rewrite" url="index.php" />
    <conditions>
        <add input="{URL}" pattern="^/(media|skin|js)/" ignoreCase="false" negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
  </rule>
</rules>

ここでやりたいことは、サイト作成のプロセスを自動化したいので、それぞれにファイルを用意することです。だから私は例えば

  1. rewrites\site1.config
  2. \teststore.config を書き換えます
  3. rewrites\devstore.config

そして、私はファイルを拾うことができました。私はこれを試しました

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
      <rewrite>
        <rules configSource="rewrites\*.config" />  
      </rewrite>
      <httpErrors errorMode="Detailed" />
    </system.webServer>
</configuration>

しかし、うまくいきませんでした。ワイルドカード * に問題があった場合に備えて、 * を \* としてエスケープしようとしました。それはに変更を加えませんでした。したがって、問題は、それらのパスをハードコーディングせずにこれらのファイルを取得する方法です/

ここにも二次的な質問がありますが、私は答えを知っていると信じています。書き換えフォルダーから約 10 ~ 30 個の構成ファイルをロードするのが悪い理由はありますか。答えは、メモリに保存されている web.config の最初の更新時のみだと思います。言い換えれば、最初のユーザーは、多くのファイルをロードするために代価を支払うユーザーです。これが本題の前提ですが、正しいでしょうか?

乾杯 - ジェレミー

4

0 に答える 0