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. 重写\site1.config
  2. 重写\teststore.config
  3. 重写\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