Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 用IIS7重写URL_Asp.net_Iis 7_Url Rewriting - Fatal编程技术网

Asp.net 用IIS7重写URL

Asp.net 用IIS7重写URL,asp.net,iis-7,url-rewriting,Asp.net,Iis 7,Url Rewriting,我有一个网站托管在IIS7上,我想在上面实现url重写 我当前的URL blog.mysite.com/article.aspx?name=婚姻 我想把它改写成 blog.mysite.com/marriage 我试过一些规则,但都没有给出完美的解决方案 请分享你的想法,这将对我有所帮助 谢谢大家 shibin假设您使用的是Microsoft Rewrite 2.0,那么您的模式将是: ^([^/]+)/$ 您的重写URL将是: article.aspx?name={R:1} 要简单地从新的ur

我有一个网站托管在IIS7上,我想在上面实现url重写

我当前的URL blog.mysite.com/article.aspx?name=婚姻

我想把它改写成

blog.mysite.com/marriage

我试过一些规则,但都没有给出完美的解决方案

请分享你的想法,这将对我有所帮助

谢谢大家


shibin

假设您使用的是Microsoft Rewrite 2.0,那么您的模式将是:

^([^/]+)/$

您的重写URL将是:

article.aspx?name={R:1}

要简单地从新的url方案重定向到旧的url方案,请将其放入web.config的system.webserver部分:

<rewrite>
  <rules>
    <rule name="RewriteUserFriendlyURL1" stopProcessing="true">
      <match url="^([^/]+)/?$" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="article.aspx?name={R:1}" />
    </rule>
  </rules>
</rewrite>

若要执行从旧url到新url的重定向,则旧url将自动更新到新方案,若要包含将重写html输出以使用新url方案的处理,则可以使用以下内容替换上述内容:

<rewrite>
  <rules>
    <rule name="RedirectUserFriendlyURL1" stopProcessing="true">
      <match url="^article\.aspx$" />
      <conditions>
        <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
        <add input="{QUERY_STRING}" pattern="^name=([^=&amp;]+)$" />
      </conditions>
      <action type="Redirect" url="{C:1}" appendQueryString="false" />
    </rule>
    <rule name="RewriteUserFriendlyURL1" stopProcessing="true">
      <match url="^([^/]+)/?$" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="article.aspx?name={R:1}" />
    </rule>
  </rules>
  <outboundRules>
    <rule name="OutboundRewriteUserFriendlyURL1" preCondition="ResponseIsHtml1">
      <match filterByTags="A, Form, Img" pattern="^(.*/)article\.aspx\?name=([^=&amp;]+)$" />
      <action type="Rewrite" value="{R:1}{R:2}/" />
    </rule>
    <preConditions>
      <preCondition name="ResponseIsHtml1">
        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
      </preCondition>
    </preConditions>
  </outboundRules>
</rewrite>