不使用 .htaccess 的新 Elastic Beanstalk 实例
Posted
技术标签:
【中文标题】不使用 .htaccess 的新 Elastic Beanstalk 实例【英文标题】:New Elastic Beanstalk instance not using .htaccess 【发布时间】:2020-10-01 14:26:47 【问题描述】:我遇到了一个以前从未遇到过的奇怪问题:我的新 Elastic Beanstalk 环境不尊重我的 .htaccess 文件。这很奇怪,因为我不记得这曾经是一个问题。事实上,我有一个多年前设置的较旧的 EB 环境,游戏代码很好。
这个新环境是 64 位 Amazon Linux 2。
在别处寻找指南说您需要编辑/etc/httpd/conf/httpd.conf
文件,但我的 EC2 实例没有。 (我也没有/etc/apache2
目录。)它最接近的是/etc/httpd/conf.d/php.conf
文件。
我不记得以前必须这样做,显然我有点担心我的 EC2 实例会忘记对任何 .conf
文件的任何更改,如果我必须在将来创建新实例。
如何让我的 EB/EC2 实例实现我的 .htaccess 文件?
【问题讨论】:
“这很奇怪,因为我不记得这曾经是一个问题” - 您使用的是什么版本的 Apache?在 Apache 2.2 上,.htaccess
文件(或者更确切地说是.htaccess
overrides)默认启用;但在 Apache 2.4 上,它们不是并且必须使用 AllowOverride
指令在服务器配置中显式启用 somewhere。
@MrWhite facepalm 亚马逊将其最新的 EB 包环境更改为使用 nginx,但并未提及。啊。这可以解释为什么 .htaccess 文件不再被尊重......!呵呵。
【参考方案1】:
从 v3.0.0 开始,Amazon 将其 Elastic Beanstalk PHP 平台更改为使用 nginx 作为其服务器,而不是 Apache。在您创建平台时不会在任何地方提及这一点,因此它可能会让您措手不及。
如果要使用Apache,需要选择平台版本v2.x.x。
详情请见the full history of Elastic Beanstalk PHP platforms。
【讨论】:
【参考方案2】:另一个答案的更新,您现在可以通过更新配置中的代理服务器将版本 3+ 中的服务器更改为 apache。
【讨论】:
以上是关于不使用 .htaccess 的新 Elastic Beanstalk 实例的主要内容,如果未能解决你的问题,请参考以下文章
Elastic Beanstalk - 升级后替换 .htaccess 为 nginx
Elastic与阿里云达成合作伙伴关系 提供“阿里云 Elasticsearch”的新服务