Strapi v3部署于IIS,Microsoft/AAD认证返回404问题求助
解决Strapi v3.x IIS反向代理下微软授权跳转错误的配置方法
1. 配置Strapi的外部访问URL
Strapi需要明确自身的外部访问地址,否则生成第三方授权链接时会误用内部地址。
- 打开Strapi项目的
config/server.js文件,修改url字段为你的实际外部域名:
module.exports = ({ env }) => ({ host: env('HOST', '0.0.0.0'), port: env.int('PORT', 1337), url: env('PUBLIC_URL', 'http://mystrapiapp.com'), // 替换为你的站点外部URL });
- 若使用环境变量管理配置,确保IIS站点对应的
PUBLIC_URL环境变量已设置为正确的外部地址。
2. 配置IIS反向代理的URL重写规则
需要通过URL重写规则传递真实请求头,让Strapi识别外部访问信息:
- 打开IIS管理器,找到
MyStrapiApp站点,进入URL重写模块。 - 编辑已有的反向代理规则,在服务器变量标签下添加以下变量:
HTTP_X_FORWARDED_PROTO:值设为http(启用HTTPS则设为https)HTTP_X_FORWARDED_HOST:值设为{HTTP_HOST}HTTP_X_FORWARDED_PORT:值设为{SERVER_PORT}
- 确认规则的操作标签中,
重写URL设置正确(例如http://localhost:1337/{R:0}),并且勾选追加查询字符串选项。
3. 验证微软OAuth插件配置
检查Strapi内微软OAuth插件的配置项:
- 确认授权URL为完整的
https://login.microsoftonline.com/common/oauth2/v2.0/authorize,未被错误修改。 - 回调URL设置为
http://mystrapiapp.com/connect/microsoft/callback,确保与Azure AD应用中配置的回调地址完全一致。
4. 重启服务生效
- 重启Strapi应用进程。
- 重启IIS站点,确保所有配置变更生效。
完成以上配置后,Strapi就能正确生成完整的微软授权跳转URL,不会出现域名被替换的问题。
内容的提问来源于stack exchange,提问作者Mario84
相关产品推荐
相关产品推荐

