这是一个apache问题。 我使用RequestHeader在配置文件中设置了一个标头。 (本地apache安装) 我可以看到它按照自定义php脚本的输出来转储标题:标题就在那里。
然而,.htaccess中未实现基于该标题存在的规则。 同一个.htaccess文件在另一台服务器上按预期工作。
我添加的请求标头似乎在.htaccess中不可见。 有什么想法吗?
Apache conf:RequestHeader设置X-Forwarded-Proto" https" 的.htaccess: RewriteCond%{HTTP:X-Forwarded-Proto}!https RewriteRule ^ https://% {HTTP_HOST}%{REQUEST_URI} [R = 301,L,NE]
永远循环。但它完全适用于AWS负载均衡器后面的配置。
答案 0 :(得分:1)
感谢帮助agent220。
我终于找到了解决方案......它需要清楚地了解Apache处理规则或运气(后者在我的情况下)。
工作指令是: RequestHeader设置X-Forwarded-Proto" https"早
高度,不显眼,大量强调“早期”这个词。 这就是全部...... 希望对别人有用。 Teebo
答案 1 :(得分:0)
.htaccess中的其他规则是否适用于此服务器?因为如果它们没有那么它可能是由于Apache Config文件中的配置(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