重写 URL 导致打开同名文件夹
Rewriting URL causing opening folder with same name
我有以下规则从 url 的末尾删除 .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>
现在的问题是,每次都打开该路径中可用文件夹的同名特定页面,而不是该站点。
这是我的网站
假设当我单击 link City.aspx
时,它会打开名称为 City 的文件夹(在 FTP 中)而不是打开那个页面。
[已编辑]
删除 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
解决了问题,但现在在 url 中输入站点名称无效。
通过删除此问题解决了问题:
<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>
我有以下规则从 url 的末尾删除 .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>
现在的问题是,每次都打开该路径中可用文件夹的同名特定页面,而不是该站点。
这是我的网站
假设当我单击 link City.aspx
时,它会打开名称为 City 的文件夹(在 FTP 中)而不是打开那个页面。
[已编辑]
删除 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
解决了问题,但现在在 url 中输入站点名称无效。
通过删除此问题解决了问题:
<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>