不使用 .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”的新服务

将所有子目录页面重定向到 .htaccess 中的新域主页

htaccess 将所有页面重定向到单个页面

在 Elastic Beanstalk 上强制将 http 重定向到 https [关闭]

.htaccess将旧文件夹重定向到包含子文件夹和文件的新文件夹