URL重写无法正常更改(/ blog / category /)到(/)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL重写无法正常更改(/ blog / category /)到(/)相关的知识,希望对你有一定的参考价值。

在web配置中,我编写了以下代码

 <system.webServer>
    <rewrite>
      <rules>
        <rule name="catalogsmain" stopProcessing="true">
          <match url="/blog/category/" />
          <action type="Redirect" url="/" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>

也试过

<system.webServer>
    <rewrite>
      <rules>
        <rule name="catalogsmain" stopProcessing="true" patternSyntax="ExactMatch">
          <match url="/blog/category/" />
          <action type="Redirect" url="/" />
        </rule>        
      </rules>
    </rewrite>
  </system.webServer>

当我浏览网址为http://localhost:55390/blog/category/healthy-living-and-advice

它没有改变

http://localhost:55390/healthy-living-and-advice

我怎样才能重写网址?

我想改变

http://mitesh.com/blog/category/healthy-living-and-advice

http://mitesh.com/healthy-living-and-advice

答案

你需要捕获blog/category背后的网址部分。另外我不确定url在开始时是否包含斜线。所以试试吧

<system.webServer>
 <rewrite>
  <rules>
    <rule name="catalogsmain" stopProcessing="true">
      <match url="/?blog/category/(.*)" />
      <action type="Redirect" url="/{R:1}" />
    </rule>
  </rules>
 </rewrite>
</system.webServer>

正则表达式中的问号就在那里,因为我不确定斜线。但原则是你捕获了网址的一部分,{R:1}是对第一个捕获组内容的引用。

以上是关于URL重写无法正常更改(/ blog / category /)到(/)的主要内容,如果未能解决你的问题,请参考以下文章

Apache URL 重写无法正常工作

重写url wordpress无法正常工作

从子域重写而不更改 url

除非使用 [R],否则 URL 重写不适用于 wordpress

当从HTTPS协议发出请求时,IIS URL重写规则(Pattern)无法识别{HTTP_HOST}

从代码 C# 更改 Web.Config 中的 URL 重写规则