我知道这可能是一个简单的问题,但我想从我的网址重写规则中排除一个文件。下面是我的web.config文件的重写部分(代码由其他人提供)。我想从删除它的扩展名中排除一个名为demo-download.php的文件。 (这导致我使用$ _POST的一些PHP代码出现问题。)
<rewrite>
<rules>
<rule name="extensionless" stopProcessing="true">
<match url="(.*)\.php$" />
<action type="Redirect" url="{R:1}" redirectType="Permanent" />
</rule>
<rule name="removeextension" enabled="true">
<match url=".*" negate="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{URL}" pattern="(.*)\.(.*)" negate="true" />
</conditions>
<action type="Rewrite" url="{R:0}.php" />
</rule>
</rules>
</rewrite>
答案 0 :(得分:0)
您可以尝试添加此行:
<add input="{REQUEST_FILENAME}" pattern=".*demo\-download\.php" negate="false" />
答案 1 :(得分:0)
您必须更改这两条规则 它将如下:
<rewrite>
<rules>
<rule name="extensionless" stopProcessing="true">
<match url="^demo-download" negate="true" />
<conditions logicalGrouping="MatchAny">
<add input="{REQUEST_FILENAME}" pattern="\.php$" />
</conditions>
<action type="Redirect" url="{R:1}" redirectType="Permanent" />
</rule>
<rule name="removeextension" enabled="true">
<match url="^demo-download.php$" negate="true" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{URL}" pattern="(.*)\.(.*)" negate="true" />
</conditions>
<action type="Rewrite" url="{R:0}.php" />
</rule>
</rules>
</rewrite>
第一条规则仅适用于请求的文件名不是以demo-download
开头且具有.php
扩展名的情况。仅当请求的路径不完全是demo-download.php