我有以下规则从网址末尾删除.aspx
:
<rewrite>
<rules>
<clear />
<rule name="Redirect to clean URL" enabled="true" stopProcessing="true">
<match url="^([a-z0-9/]+).aspx$" ignoreCase="true" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Redirect" url="{R:1}" />
</rule>
<rule name="RewriteASPX" enabled="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="{R:1}.aspx" />
</rule>
</rules>
</rewrite>
现在的问题是,该路径中可用的文件夹名称相同的几个特定页面每次都会被打开而不是该网站。
这是我的网站
假设当我点击链接City.aspx
时,它会打开名称为城市的文件夹(在FTP中),而不是打开该页面。
[编辑]
删除<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
解决了问题,但现在在网址中输入网站名称无效。
答案 0 :(得分:0)
通过删除此问题解决了问题:
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
并添加此内容:
<rule name="Canonical" stopProcessing="true">
<match url=".*"/>
<conditions>
<add input="{HTTP_HOST}" pattern="^([a-z]+[.]com)$"/>
</conditions>
<action type="Rewrite" url="http://www.{C:0}/{R:0}/Index.aspx" redirectType="Permanent"/>
</rule>