您可以像这样加载包含重写规则的文件。
<?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>
我想在这里做的,因为我想自动化网站创建过程,是为每个人都有一个文件是我的想法。所以我会有例如
- 重写\site1.config
- 重写\teststore.config
- 重写\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 时才存储在内存中。换句话说,第一个用户是为加载许多文件付出代价的用户。这是对主要问题的假设,但对吗?
干杯 - 杰里米