1

我一直在努力让 Umbraco (7.1.4) 为没有 www 的 URL 加上 www 前缀。我不能完全掌握 UrlRewriting.Net 的语法。

我目前的解决方案是:

<add name="forcewww http" 
    virtualUrl="http\://(?!www\.)" 
    redirectMode="Permanent" 
    destinationUrl="http://www." 
    ignoreCase="true" 
    redirect="Domain" /> 

但我希望它不会触发 Umbraco 后端(包含 /umbraco)的 URL。类似的东西(\/umbraco|\/data|\/install|\/usercontrols|\/umbraco_client))

该解决方案应该对多个域/tlds 有效。

非常感谢您的帮助!

4

1 回答 1

2

我们在 urlReWriting.config 中使用这种语法:

<add name="SEOfixMyExampleDomain" 
     virtualUrl="^http\://example.com/(.*)"
     rewriteUrlParameter="ExcludeFromClientQueryString"
     destinationUrl="http://www.example.com/$1"
     redirect="Domain"
     redirectMode="Permanent"
     ignoreCase="true" />

(.*) 被翻译成目标域上的 $1。如果您想让它跨域,您可以用通配符匹配替换域。但我不会那样做。 对于我们在 umbraco 中配置的每个域,我们在 UrlRewriting.config 中添加一个新行。工作快速且完美无瑕。易于维护的某人决定在一个域上进行反向(非 wwww 默认值)。

我们还重定向 umbraco 特定的 URL,因为:

  • /install 应在部署后删除
  • /usercontrols 不在浏览器上调用
  • /data 未被任何最近的软件包使用
  • /umbraco 和 /umbraco_client :为什么不呢

除此之外,我们注意到规范 URL还有助于索引正确的域...

于 2014-08-23T11:16:50.533 回答