0

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

但是,.htaccess 中不满足基于该标头存在的规则。相同的 .htaccess 文件在另一台服务器上按预期工作。

我添加的请求标头似乎在 .htaccess 中不可见。任何想法?

阿帕奇配置:

RequestHeader set X-Forwarded-Proto "https"

.ht 访问:

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

那永远循环。但它在 AWS 负载均衡器后面的配置上完美运行。

4

2 回答 2

2

感谢agent420的帮助。

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

工作指令是:

RequestHeader set X-Forwarded-Proto "https" early

对“早期”这个词的高度、含蓄、大量的强调。仅此而已……希望对其他人有用。提博

于 2017-05-08T10:17:15.647 回答
1

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

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

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

更改None为选项AllAllowOverride重新启动 Apache 服务。

AllowOverride指令用于允许在 Web 服务器中使用 .htaccess 以允许在每个目录的基础上覆盖 Apache 配置。 有关详细信息,请参阅此文档

于 2017-05-06T02:17:41.973 回答