我在server.config
文件夹中创建了一个.ebextensions/
文件,其中包含以下内容,并将其部署到我的Apache / PHP Elastic Beanstalk实例中,但它似乎并不想美化我的网址...
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实例配置中启用某些内容?
答案 0 :(得分:0)
这是一个愚蠢的陷阱。这些规则(如书面形式)需要在.htaccess
而不是*.conf
文件中。
您可以在此处详细了解差异:http://tltech.com/info/rewriterule-in-htaccess-vs-httpd-conf/
Apache根据RewriteRule或RewriteCond指令是否放在
<Directory>
块内而匹配不同的东西。显然,.htaccess文件中的所有内容都假定在目录上下文中。因此.htaccess文件中的规则与块中的规则的行为方式相同,这与规则在块外的行为方式不同。有了这些知识,我们可以通过将规则移到
来修复我们的httpd.conf文件<Directory>
块