如何通过Chef在Apache中重写URL?
我在Chef中制作了一本食谱,用于安装web应用程序、Apache和PHP。 此web应用程序有一个PHP文档,客户端可在此URL中访问该文档:如何通过Chef在Apache中重写URL?,apache,mod-rewrite,chef-infra,Apache,Mod Rewrite,Chef Infra,我在Chef中制作了一本食谱,用于安装web应用程序、Apache和PHP。 此web应用程序有一个PHP文档,客户端可在此URL中访问该文档: http://localhost/www-app/ClientFE 我有个问题。默认情况下,PHP将只解释具有PHP扩展名的文档,由于我的URL没有扩展名,它将被解释为文本。我无法更改文件的扩展名,因为客户端(也是软件)不应修改 我想实现的是让PHP解释该文档,就我所研究的内容而言,至少可以通过三种方式实现:适当配置PHP、创建别名、创建重写规则
http://localhost/www-app/ClientFE
我有个问题。默认情况下,PHP将只解释具有PHP扩展名的文档,由于我的URL没有扩展名,它将被解释为文本。我无法更改文件的扩展名,因为客户端(也是软件)不应修改
我想实现的是让PHP解释该文档,就我所研究的内容而言,至少可以通过三种方式实现:适当配置PHP、创建别名、创建重写规则
首先:我可以配置PHP来解释所需的文档:
<FilesMatch "/www-app/ClientFE">
SetHandler application/x-httpd-php
</FilesMatch>
第三:我可以用mod_alias以类似于mod_rewrite的方式完成它
这三个对我来说很好,但我的问题是:如何和厨师一起做?我还没有找到关于它的有用文档,我已经试着把它放在我的食谱中(我在互联网上找到了它们,但它们不起作用):
还有这个
apache_module "alias" do
source "/www-app/ClientFE"
target "/www-app/ClientFE.php"
end
我公司的一些人提出了两种有效的解决方案:
http://localhost/A
ashttp://localhost/A.php
。。。。我的意思是,如果Apache被问及文件A,但它没有找到,那么它将搜索A.php从这两个选项中,我选择了后者,是的,它是有效的。它以前不起作用,因为在我多次尝试中,我创建了A和A.php,在这种情况下,多视图没有任何效果。此外,我发现,如果尝试访问:但根目录中没有文件夹A,但根目录中存在文件A.php,那么脚本A.php将被就地调用:O
apache_rewrite do
source "/www-app/ClientFE"
target "/www-app/ClientFE.php"
end
apache_module "alias" do
source "/www-app/ClientFE"
target "/www-app/ClientFE.php"
end