---
title: "Next.js JSSアプリでEditingRenderMiddlewareを使ってデフォルトのプロトコルをオーバーライドします"
slug: "override-default-protocols-using-the-editingrendermiddleware-in-next-js-jss-apps"
abstract: "Vercel以外のプラットフォームでのアプリケーション展開時のプロトコル不一致問題の修正"
---
# Next.js JSSアプリでEditingRenderMiddlewareを使ってデフォルトのプロトコルをオーバーライドします

Next.js JSSアプリケーションをVercel以外のプラットフォームでホストすると、Horizonのようなエディタとの標準的な連携はプロトコルの不一致により機能しません。

デフォルトでは、Next.js JSSアプリケーションは環境変数VERCELの値に基づいてHTTPリクエストURLのプロトコルをhttpまたはhttpsに設定します。変数の値がtrueの場合、アプリケーションはリクエストのプロトコルをhttpsに設定します。アプリケーションを別のプラットフォームでホストする場合、この変数はtrue値を持ちず、アプリケーションはhttpプロトコルを使用します。

> !重要デフォルトのプロトコル解決はSitecoreAI、Vercel、Netlifyの展開を考慮しています。他のプラットフォームに展開する場合は、デフォルトの解決ロジックを上書きする必要があります。

アプリケーションがすべての可能な環境・設定・プラットフォームで正しいプロトコルを特定できないため、Next.js SDKは編集レンダリングミドルウェアの設定におけるresolveServerUrlプロパティを使ってデフォルトプロトコルをオーバーライドできます。

デフォルトのプロトコル設定を上書きするには:

-   src/pages/api/editing/render.tsファイル内で、既存の編集レンダリングオプションを置き換えhandler:
    
    const handler = new EditingRenderMiddleware({
     resolveServerUrl: (req: NextApiRequest) => {
     return \`${ process.env.PROD ? 'https' : 'http'}://${req.headers.host}\`;
     },
    }).getHandler();
    
    この例では、ハンドラーはPROD環境変数を使ってhttpsとhttpを切り替えます。 httpsを使用するには、PROD環境変数が存在し、trueに設定されていることを確実にしてください。