Elastic Beanstalk 中的重写规则不起作用



我已经在包含以下内容的.ebextensions/文件夹中创建了一个server.config文件,并将其部署到我的 Apache/PHP Elastic Beanstalk 实例中,但它似乎不想美化我的 URL......

files:
"/etc/httpd/conf.d/ssl_rewrite.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
        RewriteEngine On
        RewriteRule    ^(.*)index.php$ /$1                 [R=301,NC]
        RewriteRule    ^terms$          /tac.php            [NC,L]
        RewriteRule    ^info$           /information.php    [NC,L]
        RewriteRule    ^visit$          /visit.php          [NC,L]

这看起来很简单,但例如mysite.com/terms会产生 404(而mysite.com/tac.php工作正常)。

是否做了一些我只是没有看到的愚蠢事情(似乎可能),或者我是否需要在我的 EB 实例的配置中启用某些内容?

这是一个愚蠢的陷阱。这些规则(如书面形式)需要放在.htaccess而不是*.conf文件中。

您可以在此处了解有关差异的更多信息:http://tltech.com/info/rewriterule-in-htaccess-vs-httpd-conf/

Apache根据RewriteRule或RewriteCons指令是放置在<Directory>块内来匹配不同的东西。值得注意的是,.htaccess 文件中的所有内容都假定在目录上下文中。

因此,.htaccess 文件中的规则与块中的规则的行为方式相同,这与块外的规则行为方式不同。有了这些知识,我们只需将规则移动到<Directory>块中即可修复我们的httpd.conf文件

相关内容

  • 没有找到相关文章

最新更新