Apache 请求标头无效,在 .htaccess 中看不到效果

Apache's RequestHeader is ineffective and effect is not seen in .htaccess

这是一个 Apache 问题。 我使用 RequestHeader 在我的配置文件中设置了一个 header。 (本地apache安装) 我可以看到根据自定义 php 脚本的输出来转储 headers:header 在那里。

然而,基于 header 存在的规则在 .htaccess 中并未得到满足。 同一个 .htaccess 文件在另一台服务器上按预期工作。

我添加的请求 header 在 .htaccess 中似乎不可见。 有什么想法吗?

Apache 配置文件:

RequestHeader set X-Forwarded-Proto "https"

.htaccess:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}  [R=301,L,NE]

永远循环。但它在 AWS load-balancer.

后面的配置上完美运行

.htaccess 中的其他规则是否适用于 服务器?因为如果他们不这样做,则可能是由于 Apache 配置文件中的配置(httpd.conf 或 apache2.conf 取决于您的发行版)

编辑此文件。查找您网站的目录...类似于:

    <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

None 更改为 All 以获得 AllowOverride 选项。重新启动 Apache 服务。

AllowOverride 指令用于允许在 Web 服务器中使用 .htaccess 以允许在每个目录的基础上覆盖 Apache 配置。 See this doc for details

感谢帮助agent420

我终于找到了解决方案...这需要对 Apache 处理规则有清晰的了解,或者需要一些运气(在我的情况下是后者)。

工作指令是:

RequestHeader set X-Forwarded-Proto "https" early

高度、直截了当、大量强调这个词 'early'。 仅此而已... 希望对其他人有用。 提波