我使用url重写我的网站。我在IIS上进行了设置,它可以在服务器上运行。但它不适用于localhost。这是正常的,因为我的项目文件中没有包含重写URL的页面。我怎么解决这个问题?我在开发项目时使用cassini服务器。我应该在计算机中使用本地IIS吗?你可以在这里看到我在web.config文件中的url重写角色:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<rewrite>
<outboundRules>
<rule name="OutboundRewriteUserFriendlyURL1" preCondition="ResponseIsHtml1">
<match filterByTags="A, Form, Img" pattern="^(.*/)ProductDetail\.aspx\?prid=([^=&]+)&(?:amp;)?product=([^=&]+)$" />
<action type="Rewrite" value="{R:1}ProductDetail/{R:2}/{R:3}/" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
<rules>
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="^urun/([^/]+)/([^/]+)/?$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="ProductDetail.aspx?prid={R:1}&product={R:2}" />
</rule>
</rules>
</rewrite>
<urlCompression doDynamicCompression="false" />
</system.webServer>
答案 0 :(得分:3)
为什么不使用Url Routing? 这是更好的方式
答案 1 :(得分:0)
是的,您必须使用“添加/删除Windows组件”在本地计算机上安装IIS。
确保在安装后在本地IIS中启用“URL重写模块”。
答案 2 :(得分:0)
您需要添加否定条件<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
所以URL重写器忽略了localhost上的任何请求。
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}{REQUEST_URI}" />
</rule>
</rules>
</rewrite>