【问题标题】:URL Rewrite rules with Ghost blog hosted on Windows Azure使用托管在 Windows Azure 上的 Ghost 博客的 URL 重写规则
【发布时间】:2016-01-17 20:11:50
【问题描述】:

我正在尝试使用托管在 Windows Azure 上的 Ghost 建立博客。

我已经使用AzureWebApps 在 GitHub 上创建的预配置存储库部署并设置了所有内容。

一切都按预期工作,我已经在我自己的域名上配置了记录,这些记录在您导航到该站点时正在工作。

我遇到的问题是 *.azurewebsites.net 域名出现在搜索引擎结果中,当您导航(例如,访问 www.mysite.com/rss)时,它会切换出自定义域名并将其替换为内置的 azurewebsites 之一。

查看web.config,有两条重写规则

<rules>
    <rule name="StaticContent">
      <action type="Rewrite" url="public{REQUEST_URI}"/>
    </rule>
    <rule name="DynamicContent">
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
      </conditions>
      <action type="Rewrite" url="index.js"/>
    </rule>
</rules>

我发现一个名为 Gareth 的小伙子发表了一篇关于重写规则的帖子,该规则将“阻止”*.azurewebsites.net 域,我将此规则放入默认两个规则集之上,这让我明白了差不多好了。 rss 链接现在可以使用了。

当我导航到 www.mysite.com/ghost(这是 https 上的管理页面)时,现在出现了问题,它抱怨重写规则太多。

我知道为什么会出现这种情况,但我无法找出规则组合来满足使用自定义域启动 web 应用程序并能够导航到站点内的其他页面。我很确定这是显而易见的。

【问题讨论】:

标签: node.js azure url-rewriting ghost


【解决方案1】:

根据我的理解,我认为您已经创建了一条 CNAME 记录来将您的自定义域名与 Azure 网站域名绑定。但是,我不知道您是否在新门户上的 Azure WebApp 的All settings 处设置了Custom Domains and SSL。作为参考,您可以参考https://azure.microsoft.com/en-us/documentation/articles/web-sites-custom-domain-name/#enable-the-domain-name-on-your-web-app确定。

根据 Gareth 文章中的 url 重写规则,它似乎适用于所有 url。我认为这个问题可能是由使用配置变量(如 Ghost 博客的 config.js 文件中的 websiteUrl)呈现 url 的代码自身引起的,请参阅 https://github.com/AzureWebApps/Ghost-Azure/blob/master/config.js

希望对您有所帮助,并等待您的反馈。有任何问题,请随时告诉我。

【讨论】:

  • 我在 config.js 中编辑了代码,只指向“www.mysite.com”,现在一切正常(不需要 web.config 中的额外规则)。唯一的问题是当我导航到管理门户(即 SSL)时,我得到一个连接不是私人错误 - 但我可以继续并且它可以工作。这是一个小问题,但它是朝着正确方向迈出的一大步 - 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 2011-09-07
  • 2014-04-08
相关资源
最近更新 更多