为什么 nginx 将 phtml 文件加载为 html 文件

为什么 nginx 将 phtml 文件加载为 html 文件

我的网站在 apache 服务器上运行良好。现在我尝试在 nginx 服务器上实现,但我遇到了 magento 的 phtml 文件作为 html 执行的问题。我尝试在 nginx 配置文件中添加“*.phtml”扩展名,但没有成功。

这是我的配置文件

cat /etc/nginx/sites-enabled/mydomain.com 

server {
listen 80 default_server;

root /usr/share/nginx/mydomain.com/;
index index.php index.phtml index.html index.htm;

server_name mydomain.com ;
location / {
    try_files $uri $uri/ /index.php;
}

location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    include snippets/fastcgi-php.conf;
}

location ~ /(mysite|framework|cms)/.*\.(phtml|inc)$ {
    deny all;
}
}    

请建议如何在 nginx 中将“.html”文件解析为“.phtml”?

答案1

假设您的 phtml 文件是 PHP,它们需要像您的 php 文件一样由 php-fpm 解释,因此这应该可以工作:

location ~ \.(php|phtml)$ {
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    include snippets/fastcgi-php.conf;
}

相关内容