如何更改 PHP 天蓝色网站的根目录?
How to change root directory for PHP azure website?
我使用应用服务在 Azure 上创建了一个 PHP 网站。我通过 bitbucket 使用持续部署。我需要将网站指向我代码中的 public 文件夹,指向 运行 应用程序,因为它是使用 zend 框架构建的。
经过一番搜索,未能找到如何更改服务器指向默认目录的文件夹。
转到 Azure Web 应用程序设置 -> 应用程序设置 -> 虚拟应用程序和目录并设置新文件夹的物理路径。同时选中“应用程序”复选框。
重新启动网络应用程序一次。
2021 年的正确答案(对于 Laravel,可能还有其他带有 /public 目录的框架)是在 webroot 目录中放置一个额外的 .htaccess。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/ [L]
</IfModule>
归功于 Azure Web App - Linux/Laravel : Point domain to folder
有几种可能的情况:
- 你运行一个Windows应用服务
- 您 运行 Linux 应用服务PHP 7.4 或更低
- 您 运行 一个 Linux 应用服务 PHP 8
在第一种情况下(Windows 应用服务),您可以转到应用服务 > 设置 > 配置 blade 您需要 select 您所在的“路径映射”选项卡可以按如下方式设置虚拟应用程序路径:“/”映射到“site\wwwroot\public”。
在第二种情况下,您可以使用@Ed Greenberg 描述的 .htaccess 解决方案,即使对于 Zend Framework,我建议使用以下设置:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
对于第三种情况,您面临更多挑战,因为 Apache 已被 Nginx 取代,并且重写规则不再适用。请参阅我的详细博客文章“PHP 8 on Azure App Service”,了解如何使用适用于 PHP 8.
的新 Azure 应用服务解决这个问题和其他挑战
祝你好运,如果它解决了你的问题,请告诉我。
我使用应用服务在 Azure 上创建了一个 PHP 网站。我通过 bitbucket 使用持续部署。我需要将网站指向我代码中的 public 文件夹,指向 运行 应用程序,因为它是使用 zend 框架构建的。
经过一番搜索,未能找到如何更改服务器指向默认目录的文件夹。
转到 Azure Web 应用程序设置 -> 应用程序设置 -> 虚拟应用程序和目录并设置新文件夹的物理路径。同时选中“应用程序”复选框。
重新启动网络应用程序一次。
2021 年的正确答案(对于 Laravel,可能还有其他带有 /public 目录的框架)是在 webroot 目录中放置一个额外的 .htaccess。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/ [L]
</IfModule>
归功于 Azure Web App - Linux/Laravel : Point domain to folder
有几种可能的情况:
- 你运行一个Windows应用服务
- 您 运行 Linux 应用服务PHP 7.4 或更低
- 您 运行 一个 Linux 应用服务 PHP 8
在第一种情况下(Windows 应用服务),您可以转到应用服务 > 设置 > 配置 blade 您需要 select 您所在的“路径映射”选项卡可以按如下方式设置虚拟应用程序路径:“/”映射到“site\wwwroot\public”。
在第二种情况下,您可以使用@Ed Greenberg 描述的 .htaccess 解决方案,即使对于 Zend Framework,我建议使用以下设置:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
对于第三种情况,您面临更多挑战,因为 Apache 已被 Nginx 取代,并且重写规则不再适用。请参阅我的详细博客文章“PHP 8 on Azure App Service”,了解如何使用适用于 PHP 8.
的新 Azure 应用服务解决这个问题和其他挑战祝你好运,如果它解决了你的问题,请告诉我。