You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopware 6配置Basic Auth排除/newsletter路径失败求助

解决Apache中/newsletter路径跳过Basic Auth验证的问题

你的核心问题是配置逻辑错误:<RequireAny>会让任意一个条件满足就通过验证,但当前写法中Require valid-user和路径表达式的逻辑关系混乱,导致Auth验证规则未按预期生效。

正确配置方案(两种可选)

方案一:使用<Location>精准匹配路径(推荐)

这种方式逻辑最清晰,直接对目标路径单独设置权限:

<IfModule mod_authz_core.c>
    # 全局启用Basic Auth基础配置
    AuthType Basic
    AuthName "please login"
    AuthUserFile /my/cool/path/.htpasswd
    Require valid-user

    # 对/newsletter开头的路径跳过验证
    <Location "/newsletter">
        Require all granted
    </Location>
</IfModule>

方案二:用表达式逻辑控制

如果不能用<Location>,可以通过Require表达式的逻辑组合实现:

<IfModule mod_authz_core.c>
    AuthType Basic
    AuthName "please login"
    AuthUserFile /my/cool/path/.htpasswd

    # 满足以下任意一个条件即可访问:
    # 1. 请求路径是/newsletter开头;2. 已通过用户验证
    <RequireAny>
        Require expr %{REQUEST_URI} =~ m#^/newsletter#
        Require valid-user
    </RequireAny>
</IfModule>

关键说明

  • 原配置中<RequireAny>内部同时放置Auth指令和权限规则,导致Auth配置的作用范围被打乱,必须将Auth基础配置移到<RequireAny>外部
  • 方案一的<Location>指令优先级更高,能精准覆盖目标路径,避免逻辑冲突

内容的提问来源于stack exchange,提问作者pt1602

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 05:31:17