このように、書き換え規則を保持するファイルをロードできます。
<?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>
ここでやりたいことは、サイト作成のプロセスを自動化したいので、それぞれにファイルを用意することです。だから私は例えば
- rewrites\site1.config
- \teststore.config を書き換えます
- 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 の最初の更新時のみだと思います。言い換えれば、最初のユーザーは、多くのファイルをロードするために代価を支払うユーザーです。これが本題の前提ですが、正しいでしょうか?
乾杯 - ジェレミー