完全可以使用 IIS 的反向代理连接到 Prismic 私有仓库。
所需要的是设置 IIS 的反向代理并为其提供用于在 Prismic 进行授权的秘密。
在撰写本文时,我发现无法仅安装 IIS 的反向代理,但必须安装名为ARR的整个场扩展。
具有反向代理的是站点,而不是服务器,因此使用与以下内容web.config
相对应的数据进行更新:(了解 xml 注释)
<system.webServer>
<rewrite>
<rules>
<!-- `stopProcessing` is, I guess, the normal case. -->
<rule name="CMS rewrite" stopProcessing="true">
<!-- `"^cms(.*)"` matches `cms`, `cms/` and `cmsanything` which might not be what was intended. -->
<match url="^cms(.*)" />
<!-- Is is important to below Not use the `cdn` as in `yoursite.cdn.prismic.io` that is used for the queries. -->
<!-- `logRewrittenUrl` can be handy for tracing the target. -->
<action type="Rewrite" url="https://yoursite.prismic.io/api/v2" logRewrittenUrl="true" />
<serverVariables>
<!-- Replace `the-token` with the token found when setting the Prismic repo to private. -->
<set name="HTTP_AUTHORIZATION" value="Bearer the-token" />
</serverVariables>
</rule>
...
还有一个点击和写入的 GUI,但至少对我来说,它更难理解。并解释。
关于 Prismic 后来如何处理让我烦恼的授权秘密,这是另一个问题。
HTTP_AUTHORIZATION
必须设置为服务器变量。IISManager->URLRewrite->ViewServerVariables->添加。
我没有费心去找出它的存储位置。
调试 URL 重写问题的实用技巧。