【问题标题】:How to set up Umbraco to default in a subpage?如何在子页面中将 Umbraco 设置为默认值?
【发布时间】:2012-02-03 15:46:59
【问题描述】:

我有这个关于 umbraco 结构的问题,但我在任何地方都找不到答案。

通常在 Umbraco 中,它会将根站点默认为树的第一个节点。 所以如果我们有

  • 首页
    • 第 1 页
    • 第 2 页

默认页面将是主页(因此 www.mysite.com 将指向主页)。

但是,我如何更改它以使 www.mysite.com 指向 page1 或 page2? 如果我有这个结构怎么办?

  • 包装
    • 索引
    • 第 1 页
    • 第 2 页

我希望 www.mysite.com 直接访问 www.mysite.com/index.aspx

我找不到这样的规则。尝试插入重写/重定向规则,但没有任何改变。

请帮忙

尼克

【问题讨论】:

    标签: redirect indexing structure default umbraco


    【解决方案1】:

    在 Umbraco 中重定向通常是一件非常简单的事情,除非您尝试从站点的根节点进行重定向。

    方法一:

    这里解释得最好:http://our.umbraco.org/wiki/reference/umbraco-best-practices/umbracoredirect

    因此,可以通过将umbracoInternalRedirectId 属性添加到您的根节点,使用内容选择器的数据类型。请注意,它不会重定向用户,而是在当前 url 中加载该页面的内容。因此,URL 将保持为 http://www.mysite.com,同时提供您要重定向到的页面内容。

    方法二:

    如果你真的希望它从http://www.mysite.com/ 更改为http://www.mysite.com/index.aspx。我通常会在根节点的模板中添加类似下面的代码。

    <%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %>
    <asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
    </asp:Content>
    <script type="c#" runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Redirect("http://www.mysite.com/index.aspx");    
        }
    </script>
    

    这样 ASP.Net 负责重定向。但它显然不能很好地处理节点重命名/移动。

    【讨论】:

    • 不用担心。只要确保您仍然可以毫无错误地保存 XSLT(如果您正在使用它们)。这就是为什么在根节点上使用 Umbraco 的重定向系统可能如此棘手的主要原因,如上面的链接中所述。
    • 我只使用 razor 而不是 XSLT,网站似乎完美呈现
    【解决方案2】:

    您可以使用 Url Rewriting 重定向到任何页面 配置/UrlRewriting.config

    添加此角色

    <add name="role1"
      virtualUrl="^~/$"
      destinationUrl="~/home"
      redirect="Application"
      redirectMode="Permanent"
      ignoreCase="true" />
    

    【讨论】:

      【解决方案3】:

      这可以解决问题:向 Web.Config 添加重写规则 -

          <rewrite>
              <rules>
                  <rule name="Redirect to front" patternSyntax="ECMAScript" stopProcessing="true">
                      <match url="^$" />
                      <action type="Redirect" url="/yourViewName" />
                  </rule>
              </rules>
          </rewrite>
      

      只需在配置标签中的 system.webServer 标签之间包含它,然后将 yourViewName 替换为适当的视图名称(如联系人或工作),就完成了!

      所有测试和工作都像梦一样。

      干杯#

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 2014-12-06
      • 2010-12-27
      相关资源
      最近更新 更多