问题描述
在使用 CloudFront 为其运行在 Craft CMS 3 上的应用程序设置 ELB 作为默认源时,访问应用程序的 /admin 面板时发生了重定向(302)。用户想知道为什么只有访问 /admin 面板时才会发生重定向,并且如何防止这种情况发生。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
由于问题只在访问 /admin URL 时发生,这可能与传递给后端应用程序的 cookies 相关。您可以检查 CraftCMS 团队(或其他论坛)并获取 /admin URL 使用的 cookies 列表。然后,您可以在 CloudFront 中为 /admin URL 设置白名单,允许这些 cookies 通过。
以下是在 CloudFront 中为 /admin URL 设置白名单的步骤:
1. 登录 AWS 控制台并打开 CloudFront 控制台。
2. 选择您的分发。
3. 在分发的属性选项卡中,找到“行为”部分并单击“编辑”按钮。
4. 在“行为”编辑页面的“白名单 cookies”部分,单击“添加白名单 cookies”按钮。
5. 在“白名单 cookies”对话框中,输入要白名单的 cookies 名称,并单击“添加”按钮。
6. 单击“保存”按钮以保存更改。
请注意,这种方法仅适用于特定的 /admin URL,并且需要确保 cookies 名称正确。
方案2
请注意以下操作注意版本差异及修改前做好备份。
根据回答2,您还可以在 CloudFront 中设置白名单头部信息,以解决此问题。具体步骤如下:
1. 登录 AWS 控制台并打开 CloudFront 控制台。
2. 选择您的分发。
3. 在分发的属性选项卡中,找到“行为”部分并单击“编辑”按钮。
4. 在“行为”编辑页面的“白名单头部信息”部分,单击“添加白名单头部信息”按钮。
5. 在“白名单头部信息”对话框中,输入要白名单的头部信息名称(如 Host、Origin、Referer 等),并单击“添加”按钮。
6. 单击“保存”按钮以保存更改。
请注意,这种方法可能需要根据您的具体情况进行调整,并确保正确设置了所需的头部信息。
方案3
如果以上解决方案仍无法解决问题,您可以参考回答2中提到的博客文章,了解更多关于 CloudFront 的问题和解决方法。该文章提供了有关将 Craft CMS 应用程序放在 CloudFront 后面的一些建议和经验分享。
您可以在以下链接中找到该博客文章:https://medium.com/@justynazet/placing-a-craft-cms-application-behind-the-cloudfront-1602027ff72b