【发布时间】:2021-08-07 11:26:26
【问题描述】:
我将我的 PHP Elastic Beanstalk 实例从 Amazon Linux 2/3.2.1 升级到 Amazon Linux/2.9.17
在以前的版本中,我的包中有一个 .htaccess 文件,以便删除 URL 中的文件扩展名,如下所示:
www.example.com/page.php?var=123 变为 www.example.com/page?var=123
升级后,www.example.com/page.php?var=123 工作正常,但www.example.com/page?var=123 不工作。结果,我的应用中的导航被破坏了。
我从other stack overflow questions 了解到,随着这次 Elastic Beanstalk 平台的升级,Apache 被 Nginx 取代,这就是不再考虑 .htaccess 的原因。
我对 nginx 的了解为零,所以我尝试在网上研究如何在 nginx 上应用相同的行为。但是我所做的没有工作。看看下面我做了什么:
我在 .ebextensions\nginx\conf.d\myconf.conf 中创建了一个新的配置文件
这是文件的内容:
server {
location / {
try_files $uri $uri.html $uri/ @extensionless-php;
index index.html index.htm index.php;
}
location ~ \.php$ {
try_files $uri =404;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
}
我是否只应用了文件中所需的部分配置内容?
【问题讨论】:
-
你试过用apache吗? PHP paltform 仍然支持 apache,但它不是默认选项。您必须启用它,如docs 所示。
-
@Marcin 是的,它适用于 Apache,谢谢。我认为最好遵循亚马逊的方法来获得长期支持。但现在这个选项很好。
-
没问题。如果您不介意,我会提供答案。
标签: php amazon-web-services nginx amazon-elastic-beanstalk