在 Piranha Cms 中更改为无前缀时重定向旧网址
Redirect old urls when changing to prefixless in Piranha Cms
不幸的是,我有很多页面以“/home”作为前缀进行了 SEO 索引。
现在我需要在 Piranha 中更改为无前缀 url,这很容易。但是有没有我可以强制从旧网址重定向到新网址的地方?
例如。将 "www.example.com/home/page" 重定向到 "www.example.com/page"。问题是旧页面不再存在,所以我无法在该页面上放置脚本来进行重定向。
最好的祝福
丹麦拉尔斯
我认为最好的方法是使用url重写模块(需要从网络平台安装)。
在 web.config 中,您可以将重写规则附加到 system.webServer => 重写 => 规则。
我不会测试它,但它应该是这样的:
<system.webserver>
<rewrite>
<rules>
<rule name="RedirectToPrefixless" stopProcessing="true">
<match url="^home/(.*)" />
<action type="Redirect" url="{R:1}" />
</rule>
</rules>
</rewrite>
</system.webserver>
标签 "match" 找到以 "home/" 开头的 url - 正则表达式“(.*)”的一部分创建将在重定向中使用的组 url
标签 "action" 声明,为了匹配 URL 它应该从 "match" 部分重定向到“(.*)”部分。
例如:
- /home/test1 重定向到 /test1
- /home/test2?page=22 重定向到 /test2?page=23
所有重定向都是 "Permanent"(http 状态 301)- 也可以更改 ;)
不幸的是,我有很多页面以“/home”作为前缀进行了 SEO 索引。 现在我需要在 Piranha 中更改为无前缀 url,这很容易。但是有没有我可以强制从旧网址重定向到新网址的地方? 例如。将 "www.example.com/home/page" 重定向到 "www.example.com/page"。问题是旧页面不再存在,所以我无法在该页面上放置脚本来进行重定向。 最好的祝福 丹麦拉尔斯
我认为最好的方法是使用url重写模块(需要从网络平台安装)。 在 web.config 中,您可以将重写规则附加到 system.webServer => 重写 => 规则。
我不会测试它,但它应该是这样的:
<system.webserver>
<rewrite>
<rules>
<rule name="RedirectToPrefixless" stopProcessing="true">
<match url="^home/(.*)" />
<action type="Redirect" url="{R:1}" />
</rule>
</rules>
</rewrite>
</system.webserver>
标签 "match" 找到以 "home/" 开头的 url - 正则表达式“(.*)”的一部分创建将在重定向中使用的组 url
标签 "action" 声明,为了匹配 URL 它应该从 "match" 部分重定向到“(.*)”部分。
例如:
- /home/test1 重定向到 /test1
- /home/test2?page=22 重定向到 /test2?page=23
所有重定向都是 "Permanent"(http 状态 301)- 也可以更改 ;)