加载web.config重写文件夹中的所有文件

时间:2013-06-26 14:06:41

标签: iis-7 url-rewriting web-config

您可以加载一个包含重写规则的文件,如下所示。

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

并在文件夹/重写中找到包含(例如)

的文件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
  4. 我可以拿起文件。我确实试过这个

    <?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存储在内存中。换句话说,第一个用户是为加载一些文件付出代价的用户。这是对主要问题的假设,但是对吗?

    干杯 - 杰里米

0 个答案:

没有答案